jQuery是attr update on checkbox不会触发更改事件

All*_*Liu 6 html checkbox jquery

我有几个复选框和一个状态框,告诉您是否至少选中了一个复选框.

我还有一个选中All/None复选框,它可以切换复选框,但它不会触发分配给每个复选框的更改事件,因此如果选中All/None复选框,则状态永远不会更新.

这是我的实现:

http://jsfiddle.net/axl163/Fckvd/1/

the*_*dox 14

function toggleChecked(status) {
    $(".chkbx").each( function() {
        $(this).prop("checked", status).change(); // you have to trigger the event
    });
}
Run Code Online (Sandbox Code Playgroud)

DEMO


Sel*_*gam 5

通过脚本对输入元素的任何更改都不会触发onchange事件.

或者,您可以触发change()更新输入,同时更改输入,如下所示,

$(this).prop("checked", status).change();
Run Code Online (Sandbox Code Playgroud)

完整代码:

function toggleChecked(status) {
    $(".chkbx").each( function() {
        $(this).prop("checked", status).change();
    });
}
Run Code Online (Sandbox Code Playgroud)

也可以.prop代替使用.attr

DEMO