如何在勾选一个复选框时自动勾选其他复选框?[JavaScript]
没问题,我来帮你实现这个纯HTML/JavaScript的复选框联动功能,完全不需要依赖jQuery!
完整实现代码
先给你一个直接能用的示例,你可以根据自己实际的表单结构调整id:
<form> <label><input type="checkbox" name="html1" value="html1" id="html1"> Checkbox 1</label><br> <label><input type="checkbox" name="html2" value="html2" id="html2"> Checkbox 2</label><br> <label><input type="checkbox" name="html3" value="html3" id="html3"> Checkbox 3</label> </form> <script> // 获取三个复选框的DOM元素 const checkbox3 = document.getElementById('html3'); const checkbox2 = document.getElementById('html2'); const checkbox1 = document.getElementById('html1'); // 给Checkbox 3绑定状态变化事件 checkbox3.addEventListener('change', function() { // 当Checkbox 3被勾选时,自动勾选前两个 if (this.checked) { checkbox1.checked = true; checkbox2.checked = true; } // 如果你需要取消勾选Checkbox 3时,也同步取消前两个,可以取消下面的注释 // else { // checkbox1.checked = false; // checkbox2.checked = false; // } }); </script>
代码说明
- 获取元素:用
document.getElementById()获取每个复选框的DOM节点,这是原生JavaScript的标准方法,兼容性拉满,不需要任何额外库。 - 监听事件:给第三个复选框添加
change事件监听器,只要它的勾选状态发生变化,就会触发回调函数。 - 联动逻辑:在回调里判断当前复选框是否被勾选(
this.checked),如果是,就把前两个复选框的checked属性设为true,实现自动勾选。
注意事项
如果你的复选框id和示例不一样,只需要把代码里的html1、html2、html3替换成你实际的id即可,完全不影响功能。
内容的提问来源于stack exchange,提问作者Rik Rödel




