检测复选框状态更改

时间:2011-10-27 17:12:25

标签: jquery

我想检测用户是否检查或取消选中iframe中的复选框并设置这样的标志。但它似乎没有按预期工作。关于代码错误的任何指针?

jQuery("#frameName").contents().find(":checkbox").bind('change', function(){        
            val = true;
            alert("changed");
    });

但我可以通过

检测是否选中了复选框
var val = jQuery("#frameName").contents().find(":checkbox").is(":checked");

我希望能够检测复选框上的任何状态更改并设置标记。

2 个答案:

答案 0 :(得分:24)

使用checked DOM属性检查是否选中了复选框。 change事件始终在更改时触发,即使未选中该复选框也是如此。

jQuery("#frameName").contents().find(":checkbox").bind('change', function(){        
        val = this.checked; //<---
        alert("changed");
});

答案 1 :(得分:3)

绑定到click事件,而不是更改。复选框适用于点击。

编辑:现代浏览器中显示,通过鼠标或键盘更改复选框的状态至少会触发click change事件。< / p>

请参阅我为验证而构建的jsFiddle demo。除了clickchange之外,使用键盘还会触发一些与关键相关的事件。

相关问题