在标记复选框时切换事件

时间:2011-11-20 11:37:00

标签: jquery checkbox

我有两个复选框。每个都有一个子表单,当未标记复选框时,该子表单将被禁用。我想标记每个复选框,其子表单已启用。

我尝试使用此代码,但即使没有选中此复选框也是如此:

$("#form1").click(function(){
    if(":checked",this) { ..... }

 });

 $("#form2").click(function(){
    if(":checked",this) { ..... }

 });
你帮我吗?

2 个答案:

答案 0 :(得分:3)

您可以使用jQuery is方法:

if($(this).is(":checked")) {
    //It's checked!
}

您目前所拥有的内容将始终评为真,因为this始终是真实的(例如,不是undefinednull)。

请注意,您需要将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;
}