Jquery рассчитать скидку от выбранных значений

0

Я показываю текущую расчетную цену из окна выбора и умножая сумму на другой поле выбора:

$('#tour_type').change(function(){
$('#price').val($("#tour_type option:selected").val());
});

Мои выбирает:

<option selected="" value="">Select a Tour</option>
<option value="3900">3 Hour Tour</option>
<option value="5900">Full Day Tour</option>
<option value="11800">2 Day Tour</option>

Значение, умноженное на:

<option selected="" value="">Select Riders</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>

То, что я пытаюсь сделать, зависит от количества всадников (выберите 2), чтобы уменьшить некоторые значения из выбранного 1

Например:

3-часовой тур выбран | 1-3 Вместимость гонщиков - 3900 | 4-6 Всадника - 3400 | и т.п.

Выбор тура на целый день | 1-3 Вместимость гонщиков - 5900 | 4-6 Всадники - 5100 | и т.п.

Как изменить значения select1 на основе значения из select2?

Через данные ответы я пробовал:

$("#riders").change(function(){

    if($("#riders").val()=="1" || $("#riders").val()=="2" || $("#riders").val()=="3")
    {
   $('#tourtype option:content("3 Hour Tour")').attr('value', '1000');
   $('#tourtype option:content("Full Day Tour")').attr('value', '2000');
   $('#tourtype option:content("2 Day Tour")').attr('value', '3000');
    }
  else if($("#riders").val()=="4" || $("#riders").val()=="5" || $("#riders").val()=="6")
    {
   $('#tourtype option:content("3 Hour Tour")').attr('value', '4000');
   $('#tourtype option:content("Full Day Tour")').attr('value', '5000');
   $('#tourtype option:content("2 Day Tour")').attr('value', '6000');
    }
    });

<select name="tourtype" id="tourtype">
  <option value="3900">3 Hour Tour</option>
  <option value="5900">Full Day Tour</option>
  <option value="11800">2 Day Tour</option>
</select>

<select name="riders" id="riders">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
</select>

Но это не работает, что я делаю неправильно здесь?

  • 0
    Так какой у тебя вопрос?
  • 0
    Как изменить значения select1 на основе номеров райдера select 2?
Теги:

2 ответа

1
Лучший ответ

Вы можете сделать что-то подобное

       $(document).ready(function()
{
    $('#riders').on("change", function()
    {
    alert("hie");
       if($("#riders").val()=="1" || $("#riders").val()=="2" || $("#riders").val()=="3")

    {
    $("#tourtype option").each(function() {
    if($(this).text()=="3 Hour Tour")
    {
    $(this).attr('value', '1000');
    }
    else if($(this).text()=="Full Day Tour")
    {
    $(this).attr('value', '2000');
    }

    else
    {
    $(this).attr('value', '3000');
    }
    console.log($(this).text());
});

    }
    else if($("#riders").val()=="4" || $("#riders").val()=="5" || $("#riders").val()=="6")
    {
    $("#tourtype option").each(function() {
    if($(this).text()=="3 Hour Tour")
    {
    $(this).attr('value', '4000');
    }
    else if($(this).text()=="Full Day Tour")
    {
    $(this).attr('value', '5000');
    }

    else
    {
    $(this).attr('value', '6000');
    }
    console.log($(this).text());
});
    }
    else
    {
    alert("hie3");
   $("#tourtype option").each(function() {
    if($(this).text()=="3 Hour Tour")
    {
    $(this).attr('value', '7000');
    }
    else if($(this).text()=="Full Day Tour")
    {
    $(this).attr('value', '8000');
    }

    else
    {
    $(this).attr('value', '9000');
    }
    console.log($(this).text());
});
    }
    });
});
  • 0
    Это похоже на то, что я хочу, я добавил это к своему первоначальному вопросу, мне кажется, это не сработало?
  • 0
    ОК, похоже, проблема в: unsupported pseudo: content
Показать ещё 2 комментария
1

Используйте оператор switch на основе номера Riders.

function calculateDiscount() {
  switch ($(RIDERS_SELECT).val()) {
    case 1: 
    case 2: 
    case 3: 
      return 500;
    case 4: 
    case 5: 
    case 6: 
      return 800;
    // etc. 
  }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню