我正在尝试使用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/
答案 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');
}
});
答案 2 :(得分:3)
每次<select>
值更改时,您可能希望添加/删除该类:
$(function ()
{
$("#rReservation").change()
{
$('.mRequired').toggleClass('required', $(this).val() == "1");
}
});
答案 3 :(得分:0)
您必须确保将代码包装在更改事件中,以便您正在聆听发生的更改。
$('#rReservation').change(function(){ /* my code goes here */});