Jquery 根据选择值计算折扣

Jquery calculate discount from select values

本文关键字:计算 选择 Jquery      更新时间:2023-09-26

我从选择框显示实时计算价格,并通过另一个选择框将金额相乘,如下所示:

$('#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 |等。

如何根据 select2 中的值更改 select1 的值?

通过给出的答案,我尝试了这个:

$("#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>

但这行不通,我在这里做错了什么?

你可以做这样的事情

       $(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());
});
    }
    });
});

使用基于乘客编号的开关语句。

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