选择了jQuery IF选项

时间:2011-08-18 18:37:03

标签: jquery select

我正在尝试使用jQuery检查是否选择了value = 1的select选项,然后将class添加到某些元素。但有些东西不起作用。可以请一些人看一下代码吗?

我的代码:

Reservation <br/>
<select id="rReservation" name="rReservation" class="">
                                <option value="0">Maybe</option>
                                <option value="1">Sure</option>
</select>
<hr/>
Name <br/>
<input type="text" name="rCardUser" class="mRequired" />

<hr/>
Card<br/>
<input type="text" name="rCardNrr" class="mRequired" />

jQuery

if ($("#rReservation").val() == "1") {
   $('.mRequired').addClass('required');
} else {
   $('.mRequired').removeClass('required');
}

小提琴的实例 - http://jsfiddle.net/C7Gg3/

4 个答案:

答案 0 :(得分:10)

你需要在事件处理程序中使用它:

$('#rReservation').change(function(){
    $('.mRequired').toggleClass('required', $(this).val() == '1');
});

http://jsfiddle.net/AlienWebguy/C7Gg3/1/

如果您希望仅在加载时触发,则需要将selected="selected"添加到其中一个选项,因为在“选择”之前,$('#rReservation").val()将为null。示例:http://jsfiddle.net/AlienWebguy/C7Gg3/3/

答案 1 :(得分:5)

您必须收听change事件:

$("#rReservation").change(function(){
    if ($("#rReservation").val() == "1") {
       $('.mRequired').addClass('required');
    } else {
       $('.mRequired').removeClass('required');
    }
});

http://jsfiddle.net/epkN8/

答案 2 :(得分:3)

每次<select>值更改时,您可能希望添加/删除该类:

$(function ()
{
    $("#rReservation").change()
    {
       $('.mRequired').toggleClass('required', $(this).val() == "1");
    }
});

答案 3 :(得分:0)

您必须确保将代码包装在更改事件中,以便您正在聆听发生的更改。

http://jsfiddle.net/C7Gg3/2/

$('#rReservation').change(function(){ /* my code goes here */});