javascript - 如何一次禁用网页上的所有复选框?

标签 javascript checkbox input

我的网页上有几组复选框。我想用 javascript 取消选中它们。现在,我通过查找每个集合的名称并使用像这样的 FOR 循环取消选中它们来做到这一点...

    for (i=0;i<document.getElementsByName("myboxes").length;i++) {
document.getElementsByName("myboxes")[i].checked=false;}

for (i=0;i<document.getElementsByName("moreboxes").length;i++) {
document.getElementsByName("moreboxes")[i].checked=false;}

for (i=0;i<document.getElementsByName("evenmoreboxes").length;i++) {
document.getElementsByName("evenmoreboxes")[i].checked=false;}

我正在寻找一种通过一个循环来定位所有目标的方法。我可以getElementsByTagName('input')以所有输入为目标,但这是一个问题,因为我有一些我不想取消选中的 radio 输入。有没有办法定位所有 checkbox inputs

<小时/>

感谢您的建议。我刚刚想到一件事。我使用的每个名称中都包含“boxes”一词,myboxes、moreboxes,甚至moreboxes。有没有办法在名称中定位单词“boxes”,例如通配符,例如 document.getElementsByName("*boxes")这样,如果我在某个时刻添加一组我不想取消选中的复选框,我可以简单地以不同的方式命名它们。

最佳答案

您可以选择所有选中的复选框并重置其状态:

function uncheckAll() {
  document.querySelectorAll('input[name$="boxes"]:checked')
    .forEach(checkbox => checkbox.checked = false);
}
<input type="checkbox"/>
<input type="checkbox" name="a_boxes" checked/>
<input type="checkbox"/>
<input type="checkbox" name="b_boxes" checked/>
<input type="checkbox" name="c_boxes" checked/>


<button onclick="uncheckAll()">Reset</button>

关于javascript - 如何一次禁用网页上的所有复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54372487/

相关文章:

javascript - CKEditor跨域请求文件上传

javascript - 在 Bootstrap Carousel 中使用图表 js

javascript - Angular 4 : How to assign array of string into checkbox in reactive forms

javascript - 如何在jquery中操作具有所有条件的复选框

c++ - 为多个输入选择选项

C 程序未接收到所有输入

javascript - 没有观察的缓存 View

javascript - 添加指令使 Controller 在 Angular js 代码中未定义

c# - javascript - 复选框 checkall() 函数

javascript - 使用正则表达式和 jQuery 使输入接受一个字母