Jquery根据选择值计算折扣

时间:2013-10-24 14:01:29

标签: javascript jquery

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

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

但这不起作用,我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

根据Riders编号使用switch语句。

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

答案 1 :(得分: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());
});
    }
    });
});