在更改时附加未选中的复选框回调

Attach not checked checkboxes callback on change

本文关键字:复选框 回调      更新时间:2023-09-26

所以我有一个带有复选框字段的网格视图。在jquery中,我想编写一个函数,当选中未选中的复选框时,它会执行某些操作。

function clickAllSize() {
    alert("helloy");
}
$(document).ready(function () {
    $("input :checkbox:not(checked)").change(clickAllSize());
});

问题是,该函数在页面加载时立即运行,然后再单击。随后的检查/取消检查不会触发警报。

这应该是:

$(document).ready(function () {
    $('input[type="checkbox"]:not(checked)').change(clickAllSize);
});
  1. 在更改回调中,您应该给出函数名,而不是调用它
  2. 从文档中:

因为:checkbox是jQuery扩展,而不是CSS规范的一部分,所以使用:checkbox的查询无法利用本机DOM querySelectorAll()方法提供的性能提升。为了在现代浏览器中获得更好的性能,请改用[type="checkbox"]。

Jquery设计用于0+所选元素,因此在调试Jquery代码时,请始终检查选择器长度:

var amount = $("input :checkbox:not(checked)").length;
alert(amount);  // -Probably 0...

删除change(clickAllSize()) 后的()