【问题标题】:jQuery is attr update on checkbox is not triggering change eventjQuery是复选框上的属性更新未触发更改事件
【发布时间】:2012-05-31 09:49:02
【问题描述】:

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

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

这是我的实现:

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

【问题讨论】:

    标签: jquery html checkbox


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      相关资源
      最近更新 更多