1

自从升级到 jquery 1.9 后,我的脚本停止检查/取消选中复选框。

我有一个主复选框,用于控制选择/检查表格中的复选框列表。升级到新的 jquery 版本后,只有最初单击“检查所有”复选框才会被选中。第二次单击“全选”会导致复选框取消选中,但是在单击 2 次后单击“全选”表格复选框不再起作用。

在此处输入图像描述

脚本:

    $("#itemsList .checkall").on("click", function () {
        $(".checkbox").attr("checked", $(this).is(':checked'));
    });

也试过这个:

    $("#itemsList .checkall").click(function () {
        $(".checkbox").attr("checked", $(this).is(':checked'));
    });

html "检查所有":

<input type="checkbox" id="checkall" name="checkall" class="checkbox checkall">

html 表格复选框:

<input type="checkbox" value="1" class="checkbox">

在切换到 jquery 1.9 之前,这曾经工作得很好。是什么赋予了??

4

2 回答 2

2

prop从 jQuery 1.6 开始,应该使用更改元素属性的方法而不是attr.

$("#itemsList .checkall").on("change", function () {
     $(".checkbox").prop("checked", this.checked);
});
于 2013-04-24T08:30:15.667 回答
2

尝试使用prop()代替,因为:

从 jQuery 1.6 开始,.attr() 方法为尚未设置的属性返回 undefined。要检索和更改 DOM 属性,例如表单元素的选中、选择或禁用状态,请使用 .prop() 方法。

$("#itemsList .checkall").on("change", function () {
    $(".checkbox").prop("checked", this.checked);
});
于 2013-04-24T08:31:41.143 回答