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 | 等

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>

しかし、それはうまくいきません。ここで何が間違っていますか?

4

2 に答える 2

1

You can do something like this

       $(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());
});
    }
    });
});
于 2013-10-24T14:12:29.730 に答える