2013-10-24 2 views
0

Я показываю жить расчетной цены от выбора коробки и умножения суммы через другое поле выбора, как так: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 | и т. д.

Как изменить значения 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

Так что ваш вопрос? – JNDPNT

+0

Как изменить значения select1 на основе номеров всадников для выбора 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' –

+0

Теперь его работа, проверьте его –

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. 
    } 
} 
Смежные вопросы