2011-08-18 77 views
7

我试图用jQuery检查,如果选择值为1的选项被选中,然后将类添加到一些元素。但有些事情不行。可以请一些人看看代码?选择jQuery IF选项

我的代码:

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/

+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/

+0

Far cleaner to use'.toggleClass()',amigo ... –

+0

同意。不想重写他所有的代码,但为了演示的缘故,我认为它值得交换。 – AlienWebguy

5

你必须听change事件:

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

http://jsfiddle.net/epkN8/

+1

-1不,他不。 – Maverick

+1

@Matt安德森:为什么不呢?他试图在选择一个选项时添加/删除类。要做到这一点的唯一方法,AFAIK,就是听'change'事件。我错过了什么吗? –

+0

他说:“我试图用jQuery检查,如果选择值为1的选项被选中,然后将类添加到某些元素。如果他已将“选定”属性添加到他的任一个'

0

你必须确保你已经包裹你的代码更改事件让你听的变化发生。

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

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

也许你想添加/删除类每次<select>值变化:

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

+1用于建议使用带有条件参数的切换。 – AlienWebguy