【发布时间】:2012-05-31 09:49:02
【问题描述】:
我有几个复选框和一个状态框,它会告诉您是否至少有一个复选框被选中。
我还有一个选中 All/None 复选框,用于切换复选框,但它不会触发分配给每个复选框的更改事件,因此如果使用选中 All/None 复选框,则状态永远不会更新。
这是我的实现:
【问题讨论】:
我有几个复选框和一个状态框,它会告诉您是否至少有一个复选框被选中。
我还有一个选中 All/None 复选框,用于切换复选框,但它不会触发分配给每个复选框的更改事件,因此如果使用选中 All/None 复选框,则状态永远不会更新。
这是我的实现:
【问题讨论】:
function toggleChecked(status) {
$(".chkbx").each( function() {
$(this).prop("checked", status).change(); // you have to trigger the event
});
}
【讨论】:
通过脚本对输入元素的任何更改都不会触发onchange 事件。
或者,您可以在更新更改输入时触发change(),如下所示,
$(this).prop("checked", status).change();
完整代码:
function toggleChecked(status) {
$(".chkbx").each( function() {
$(this).prop("checked", status).change();
});
}
同时使用.prop 代替.attr
【讨论】: