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

时间:2012-05-24 19:07:43

标签: jquery html checkbox

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

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

这是我的实施:

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

2 个答案:

答案 0 :(得分:14)

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

<强> DEMO

答案 1 :(得分:5)

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

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

$(this).prop("checked", status).change();

完整代码:

function toggleChecked(status) {
    $(".chkbx").each( function() {
        $(this).prop("checked", status).change();
    });
}

同时使用.prop代替.attr

DEMO