@dgallyamshin

Как написать калькулятор доставки с выпадающим списком городов?

Есть курьерская доставка. У нее есть свои тарифы в разных зонах страны. Доставка из одной зоны в другую рассчитывается суммой тарифов этих двух зон. Есть два выпадающих списка с выбором города, вкратце это два select:
1. Населенный пункт отправки посылки. ( здесь к примеру 20 городов)
2. Населенный пункт получения посылки. ( и здесь)
Задача:
Нужен скрипт, который:
1. Будет сверять город выбранный в первом инпуте с городами, которые указаны в .... case: ... brake
И будет ставить стоимость в зависимости от первого города.
2. Будет сверять город выбранный в втором инпуте с городами, которые указаны в .... case: ... brake
И будет ставить стоимость в зависимости от второго города.
3. Будет складывать стоимость тарифов в этих городах и выводить в какой-нибудь div это значение.
4. Если тариф этих городов одинаковый, то он не будет складывать их, а просто выводить первое значение.

Вот здесь код, но там один select, а нужно два, и вместо div input.
<form action="" id="checkout-form">
  <select name="" id="order-fld-4">
  <option value="Санкт-Петербург">Санкт-Петербург</option>
  <option value="Москва">Москва</option>
  <option value="Казань">Санкт-Петербург</option>
</select>
<input type="text" name="custom_delivery_tax">
</form>

// обработчик изменения выпадающего списка
$('#order-fld-4').on('change', function(){
    // получаем город, который выбрал пользователь
    var city = $(this).val();
    // запускаем нашу функцию и передаем в нее город
    myCalculator(city);
});
// Функция расчета и записи стоимости доставки
function myCalculator(city){
    var cost;

    // Сопоставляем выбранные город и цену
    switch(city){
      case 'Москва': cost = 100; break;
      case 'Санкт-Петербург': cost = 200; break;
      case 'Казань': cost = 300; break;
      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);
}

https://jsfiddle.net/8Lrhxbne/

Код почему-то не хочет работать!
  • Вопрос задан
  • 372 просмотра
Пригласить эксперта
Ответы на вопрос 1
У вас в самой последней строке ошибка.
А в фиддл не добавили jquery

вот так работает
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы