自升级到jquery 1.9以来,我的脚本停止了检查/取消选中复选框的工作。
我有一个主复选框,用于控制选择/检查表格中的复选框列表。升级到新的jquery版本后,最初只需点击"全部检查"复选框被选中。点击第二次"全部检查"导致复选框取消选中,但执行"全部检查"点击两次后点击表复选框停止工作了。
脚本:
$("#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之前,这常常工作正常。 是什么给了??
答案 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);
});