jquery检查/取消选中复选框列表

时间:2013-04-24 08:27:08

标签: jquery

自升级到jquery 1.9以来,我的脚本停止了检查/取消选中复选框的工作。

我有一个主复选框,用于控制选择/检查表格中的复选框列表。升级到新的jquery版本后,最初只需点击"全部检查"复选框被选中。点击第二次"全部检查"导致复选框取消选中,但执行"全部检查"点击两次后点击表复选框停止工作了。

enter image description here

脚本:

    $("#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之前,这常常工作正常。 是什么给了??

2 个答案:

答案 0 :(得分:2)

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

$("#itemsList .checkall").on("change", function () {
     $(".checkbox").prop("checked", this.checked);
});

答案 1 :(得分:2)

尝试使用prop(),因为:

  

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

$("#itemsList .checkall").on("change", function () {
    $(".checkbox").prop("checked", this.checked);
});