我有两个复选框。每个都有一个子表单,当未标记复选框时,该子表单将被禁用。我想标记每个复选框,其子表单已启用。
我尝试使用此代码,但即使没有选中此复选框也是如此:
$("#form1").click(function(){
if(":checked",this) { ..... }
});
$("#form2").click(function(){
if(":checked",this) { ..... }
});
你帮我吗?
答案 0 :(得分:3)
您可以使用jQuery is
方法:
if($(this).is(":checked")) {
//It's checked!
}
您目前所拥有的内容将始终评为真,因为this
始终是真实的(例如,不是undefined
或null
)。
请注意,您需要将this
传递给jQuery,因为它将是对单击的DOM元素本身的引用,而不是jQuery包装的元素。
答案 1 :(得分:2)
#form1和#form2复选框?然后你可以这样做:
$("#form1").change(function(){
if( this.checked ) {
.....
}
});
$("#form2").change(function(){
if( this.checked ) {
...
}
});
http://jsfiddle.net/9pgmN/1/(只是演示)
在各种冗余对象构建和选择器过滤之后,jQuery的":checked"
归结为
checked: function( elem ) {
return elem.checked === true;
}