在javascript中自动检查复选框

时间:2014-11-01 11:38:33

标签: javascript html

我的页面上有多个复选框和“全选”按钮。我想,当我按下选择按钮时,页面上的所有元素都要检查。这是我尝试过的javascript代码:

<script>
    function selectall() {
        for (var i = 0; i < document.getElementsByName("ch").length; i++) {
            document.getElementsByName(ch[i]).checked = true;
        }
    }
</script>

这里是html:

<form action="analize.php" method="POST" enctype="multipart/form-data">
    <input type="button" onclick="selectall()" value="SELECT ALL" />
    <input type="checkbox" name="ch[]" value="a" align="MIDLE" />
    <input type="checkbox" name="ch[]" value="b" align="MIDLE" />
    <input type="checkbox" name="ch[]" value="c" align="MIDLE" />
</form>
但它不起作用。问题是什么?

1 个答案:

答案 0 :(得分:3)

目标元素的name属性为ch[]而非ch。另外.getElementsByName(ch[i]) 应该是.getElementsByName('ch[]')[i]

for (var i = 0; i < document.getElementsByName("ch[]").length; i++) {
    document.getElementsByName('ch[]')[i].checked = true;
}

您还可以缓存NodeList,这比在每次迭代中查询DOM更有效:

var nodeList = document.getElementsByName("ch[]");
for (var i = 0; i < nodeList.length; i++) {
    nodeList[i].checked = true;
}