jQuery是复选框上的属性更新未触发更改事件
Posted
技术标签:
【中文标题】jQuery是复选框上的属性更新未触发更改事件【英文标题】:jQuery is attr update on checkbox is not triggering change event 【发布时间】:2012-05-31 09:49:02 【问题描述】:我有几个复选框和一个状态框,它会告诉您是否至少有一个复选框被选中。
我还有一个选中 All/None 复选框,用于切换复选框,但它不会触发分配给每个复选框的更改事件,因此如果使用选中 All/None 复选框,则状态永远不会更新。
这是我的实现:
http://jsfiddle.net/axl163/Fckvd/1/
【问题讨论】:
【参考方案1】:function toggleChecked(status)
$(".chkbx").each( function()
$(this).prop("checked", status).change(); // you have to trigger the event
);
DEMO
【讨论】:
是的,我知道 =) 不幸的是,我需要等待 10 分钟才能接受任何答案。 @AllenLiu 这并不不幸.. 基本上也是给 OP 一些时间来审查其他答案.. 而且只有 10 分钟 :) @Vega - 真的!你们两个太快了。【参考方案2】:通过脚本对输入元素的任何更改都不会触发onchange
事件。
或者,您可以在更新更改输入时触发change()
,如下所示,
$(this).prop("checked", status).change();
完整代码:
function toggleChecked(status)
$(".chkbx").each( function()
$(this).prop("checked", status).change();
);
同时使用.prop
代替.attr
DEMO
【讨论】:
以上是关于jQuery是复选框上的属性更新未触发更改事件的主要内容,如果未能解决你的问题,请参考以下文章