【发布时间】:2018-01-19 06:41:14
【问题描述】:
当手动选中/取消选中任何目标复选框时,以编程方式检查所有复选框无法正常工作 我有两种方法,一种是选中所有复选框,另一种是取消选中所有复选框值
我将它们命名为 selectAll 和 unSelectall。当 selectAll 被触发时,它会检查所有的复选框,但是当 unSelectall 被触发时,它会取消选中所有的复选框,但是当您选中/取消选中任何目标复选框然后单击 checkall 或取消选中全部时,问题是什么,手动选中/ 未选中的复选框不起作用。这是fiddle上的工作代码
function selectAll() {
const checkboxes = document.querySelectorAll('.myCheck');
let i = 0;
while(i < checkboxes.length) {
checkboxes[i].setAttribute("checked", "checked");
i++;
}
}
function unSelectAll() {
const checkboxes = document.querySelectorAll('.myCheck');
let i = 0;
while(i < checkboxes.length) {
checkboxes[i].removeAttribute("checked", "");
i++;
}
}
【问题讨论】:
-
按照@gurvinder372的建议,您应该使用
.checked。但是您不需要 2 个功能。您可以创建一个函数,将true用于选择,false用于取消选择并相应地进行处理。 Updated Fiddle。此外,元素的id应该是唯一的。