2014-11-02 2 views
1

Я выберите опцию нижеВыберите OnChange и пользовательское значение текстовое поле

<select id="order_package_id" class="form-control" name="order[package_id]"> 
    <option value="1">KJ01</option> 
    <option value="2">KJ02</option> 
    <option value="3">KJ03</option> 
    <option value="4">KJ04</option> 
    <option value="5">KJ DELUXE</option> 
    <option value="6">KJO6</option> 
</select> 

и одно текстовое поле со значением по умолчанию в скрытой

<input id="order_discount_id" class="form-control" type="hidden" value="2" name="order[discount_id]"> 

Мой вопрос я хочу сделать, когда выберите значение == 6, то текстовое поле изменится на значение = «3»

Я стараюсь с JQuery ниже, но не повезло

$('#order_package_id').change(function() { 
    if($(this).val() == 6) { 
    $('#order_discount_id').val() == 3; 
    } 
}); 

ответ

1

Вы должны передать значение методу .val(). Без передачи значения .val() как getter возвращает текущее значение элемента. Итак, что происходит, вы получаете значение и сравниваете его с 3 с помощью оператора ==. Код эффективно ничего не делает.

$('#order_discount_id').val(3); 

Для присвоения следует использовать оператор =, но вы не можете использовать значение на левой стороне задания.

Редактировать: Если значение должно быть 2, когда значение select не равно 6, вы должны добавить в код код else. Другой вариант заключается в использовании conditional (ternary) operator:

$('#order_package_id').change(function() { 
    $('#order_discount_id').val(this.value == 6 ? "3" : "2"); 
}); 
+0

Ваш ответ правильный. Но тогда, если я нажму на значение выбора == 5, значение текстового поля останется 3 .. как заставить его вернуться к значению = 2 – AmirolAhmad

+0

Его работа отлично! Большое вам спасибо за вашу помощь. Ценить это! – AmirolAhmad

+0

@AmirolAhmad Добро пожаловать! – undefined

1

Чтобы установить значение, передать его val() методу:

$('#order_package_id').change(function() { 
    if($(this).val() == 6) { 
    $('#order_discount_id').val(3); 
    } 
}); 
+0

Ваш ответ правильный .. tq! – AmirolAhmad