Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 20.07.2016, 20:50
Интересующийся
Отправить личное сообщение для JimHudson Посмотреть профиль Найти все сообщения от JimHudson
 
Регистрация: 20.07.2016
Сообщений: 18

warren buffet, можешь помочь?
Ответить с цитированием
  #12 (permalink)  
Старый 20.07.2016, 20:51
Интересующийся
Отправить личное сообщение для JimHudson Посмотреть профиль Найти все сообщения от JimHudson
 
Регистрация: 20.07.2016
Сообщений: 18

Rise,
есть идеи?
Ответить с цитированием
  #13 (permalink)  
Старый 20.07.2016, 21:08
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

JimHudson, <select>
Ответить с цитированием
  #14 (permalink)  
Старый 21.07.2016, 13:29
Интересующийся
Отправить личное сообщение для JimHudson Посмотреть профиль Найти все сообщения от JimHudson
 
Регистрация: 20.07.2016
Сообщений: 18

Так! Кодил, кодил и накодил!
Что получил
var myCalculator = function(region){
 // стоимость доставки
 var cost = 0;
 switch(region) {
 // каждое первое число месяца стоимость равна 100у.е.
 case 1: cost = 100; break 
 // каждое двенадцатое число месяца стоимость равна 200у.е.
 case 2: cost = 200; break
 // каждое тридцать первое число месяца доставка бесплатна (таких дней всего 7 в году)
 case 3: cost = 0; break
 // по остальным дням мы не так щедры, доставка 500у.е.
 // default: cost = 500;
 }
 // если поле custom_delivery_tax не существует
 if($('input[name="custom_delivery_tax"]').length == 0){
 // добавить его
 $('#checkout-form').append('<input type="hidden" name="custom_delivery_tax" value="0">');
 }
 // запись стоимости доставки в поле custom_delivery_tax
 $('input[name="custom_delivery_tax"]').val(cost);
}


Попытался описать функцию. В зависимости от выбранного элемента зависит цена.

И попытался вставить в код HTML
<FORM id ="FormReg" name="FormReg">
<SELECT name="SelectReg" id="SelectReg" OnChange='region'>
<OPTION VALUE = "0"> Выюерете регион доставки </OPTION>
<OPTION VALUE = "1"> Московская область </OPTION>
<OPTION VALUE = "2"> Республика Татарстан </OPTION>
<OPTION VALUE = "3"> Алтайский край </OPTION>
</select>
</form>
<script src = "/js/myCalculator.js"></script>
<script>myCalculator(region);</script>


Что не так я сделал?
Ответить с цитированием
  #15 (permalink)  
Старый 21.07.2016, 13:48
Интересующийся
Отправить личное сообщение для JimHudson Посмотреть профиль Найти все сообщения от JimHudson
 
Регистрация: 20.07.2016
Сообщений: 18

Вот собственно результат. Напомню что сайт на платформе Ucoz
Изображения:
Тип файла: jpg результ.jpg (9.4 Кб, 4 просмотров)
Тип файла: jpg результ2.jpg (19.2 Кб, 4 просмотров)
Ответить с цитированием
  #16 (permalink)  
Старый 21.07.2016, 13:53
Интересующийся
Отправить личное сообщение для JimHudson Посмотреть профиль Найти все сообщения от JimHudson
 
Регистрация: 20.07.2016
Сообщений: 18

Загрузчик не о чем
http://uchudesami.ru/rezult.png
http://uchudesami.ru/rezult2.png

Вот результаты труда. Как мне сделать взаимосвязь функции и <select>???
Ответить с цитированием
  #17 (permalink)  
Старый 21.07.2016, 19:04
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

JimHudson,
<select name="region" onchange="regionChange(this)">
	<option value="0">Выберите регион доставки</option>
	<option value="300">Красноярский край</option>
	<option value="200">Ленинградская область</option>
	<option value="200">Московская область</option>
	<option value="300">Омская область</option>
	<option value="650">Другой</option>
</select>

<script>
function regionChange(region) {
	alert(region.value);
}
</script>
Ответить с цитированием
  #18 (permalink)  
Старый 21.07.2016, 19:23
Интересующийся
Отправить личное сообщение для JimHudson Посмотреть профиль Найти все сообщения от JimHudson
 
Регистрация: 20.07.2016
Сообщений: 18

спасибо огромное, но проблема еще не решена.последнии три строчки моей функции


if($('input[name="custom_delivery_tax"]').length == 0
$('#checkout-form').append('<input type="hidden" name="custom_delivery_tax" value="0">');

}

$('input[name="custom_delivery_tax"]').val(cost);

добавляют числовой результат в общую стоимость заказа.

как мне их применить? нужно решение без alert.
и как функцию js подключить из внешнего файла?
Ответить с цитированием
  #19 (permalink)  
Старый 22.07.2016, 06:43
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

ТС, ты зачем мозг насилуешь? Тебе всего-то надо заменить несколько переменных по одному всего лишь признаку. Сделай таблицу цен по рыгионам и подставляй нужный объект, ты мужик или не мужык?

var costs={},
    Cost; /* выбранный регион */

costs.msk={
   name:Мозгва,
   0:970,
   1:100,
   12:300,
   31:0
};

costs.nsk={
   name:Новосибирск
   0:670,
   1:200,
   12:500,
   31:0
};

/* продолжай копипастить и менять цены по дням для рыгиона */

costs.spb={
   name:Питербурх
   0:170,
   1:600,
   12:600,
   31:1
};

Cost=costs.msk; /* дефаульт сити  */



Теперь делаешь список

var html=[];

for(var item in costs)
   html.push('<option value="'+key+'"'+((costs[key]===Cost)?' selected':'')+'>'+costs[key].name+'</option>';

some_elem.innerHTML='<select>'+html.join('')+'</select>';
some_elem.addEventListener('change',calc);



Теперь калькируешь

var calc=function(e){

    /* если есть такой регион, то взять, иначе в мозгву, или какой-то дефольт */

    var region = (costs.hasOwnProperty(this.value))?costs[this.value]:costs.msk

    /* в var today; номер дня, если не твой день, то дефолт */

    Cost = region.hasOwnProperty(today)?cost[today]:cost[0];

};



Всенах.

Последний раз редактировалось warren buffet, 22.07.2016 в 07:01.
Ответить с цитированием
  #20 (permalink)  
Старый 22.07.2016, 06:47
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

ЗЫ. Таблица ненормальна, но тут уловки: номер дня - это число, значит топоним можно заеписать через текстовый ключ, прямо в отношение и вторая - нулевого дня не бывает, поэтому дефолт в пишется в 0, кроме того к 0 эволюционируют все пустые значения.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор услуг tarantino Javascript под браузер 1 30.07.2015 00:21
Не работает Калькулятор просчета отопления igor700 Общие вопросы Javascript 5 26.02.2014 16:18
Калькулятор стоимости доставки Katik Элементы интерфейса 2 30.08.2012 15:32
Сделать калькулятор на сайт. asderru Работа 1 22.07.2010 13:46
Калькулятор работает ТОЛЬКО в ie6 (вопрос ламера) st_sinner Javascript под браузер 3 17.04.2010 18:11