[英]How to check one check box if other check boxes checked using javascript?
var select_all = document.getElementById("select_all"); //select all checkbox var checkboxes = document.getElementsByName("testc"); //checkbox items //select all checkboxes select_all.addEventListener("change", function(e) { for (i = 0; i < checkboxes.length; i++) { checkboxes[i].checked = select_all.checked; } }); for (var i = 0; i < checkboxes.length; i++) { checkboxes[i].addEventListener('change', function(e) { //".checkbox" change //uncheck "select all", if one of the listed checkbox item is unchecked if (this.checked == false) { select_all.checked = false; } //check "select all" if all checkbox items are checked if (document.querySelectorAll('.checkbox:checked').length == checkboxes.length) { select_all.checked = true; } }); }
<li><input type="checkbox" id="select_all" /> Selecct All</li> <ul> <li><input class="checkbox" type="checkbox" name="testc"> This is Item 1</li> <li><input class="checkbox" type="checkbox" name="testc"> This is Item 2</li> <li><input class="checkbox" type="checkbox" name="testc"> This is Item 3</li> <li><input class="checkbox" type="checkbox" name="testc"> This is Item 4</li> <li><input class="checkbox" type="checkbox" name="testc"> This is Item 5</li> <li><input class="checkbox" type="checkbox" name="testc"> This is Item 6</li> </ul>
The above code is working fine.上面的代码工作正常。 but here the part below is checking the
CSS
of the checkboxes
to apply the condition.但这里下面的部分是检查
checkboxes
的CSS
以应用条件。 i want to check the name of the checkboxes
.我要检查的名称
checkboxes
。 Looking for a solution ?正在寻找解决方案?
//check "select all" if all checkbox items are checked
if (document.querySelectorAll('.checkbox:checked').length == checkboxes.length) {
select_all.checked = true;
}
});
change
event bubble you can addEventListener
on parent element.change
事件气泡时,您可以在父元素上添加事件addEventListener
器。find()
to check if one input is not checked.find()
检查是否未检查一个输入。input[name="testc"]
input[name="testc"]
选择,请使用input[name="testc"]
#select_all
state if some inputs are checked?#select_all
状态会怎样?var checkall = document.getElementById("select_all")
var ul = document.querySelector('ul#checkbox-list')
var checkboxes = Array.from(ul.querySelectorAll('input[name="testc"]')) /* 3 */
checkall.addEventListener('change', () => {
checkboxes.forEach(elm => (elm.checked = checkall.checked))
})
ul.addEventListener('change', () => { /* 1. */
checkall.checked = !checkboxes.find(elm => !elm.checked) /* 2. */
})
stronger example here solving /* 4. */
: https://codepen.io/yukulele/pen/PNNdvw?editors=0010在这里解决
/* 4. */
更强的例子: https : //codepen.io/yukulele/pen/PNNdvw?editors=0010
If you want to check the checkboxes by their names then change the selector inside querySelectorAll
如果
querySelectorAll
名称选中复选框,请更改querySelectorAll
的选择器
if (document.querySelectorAll('[name="testc"]:checked').length == checkboxes.length) {
select_all.checked = true;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.