当我单击删除按钮而不单击任何复选框时,它应该显示警报,但在此编码中,如果选中第一个复选框,则不会显示警报。如果选中第二个复选框,则会显示警报。
HTML:
<div id="checkbox">
<input type="CHECKBOX" name="MyCheckbox" class="checkbox" value="This..." >
<input type="CHECKBOX" name="MyCheckbox" class="checkbox" value="This..." >
<input type="CHECKBOX" name="MyCheckbox" class="checkbox" value="This..." >
<input type="CHECKBOX" name="MyCheckbox" class="checkbox" value="This..." >
</div>
<form action="DeleteServer" onsubmit="return checkCheckBoxes(this);">
<input type="SUBMIT" value="Delete!">
</form>
脚本函数:
function checkCheckBoxes() {
var chk = document.getElementById("checkbox").getElementsByTagName("input");
for(var i=0; i<chk.length;i++){
if (document.getElementById("checkbox").getElementsByTagName("input")[i].checked == false)
{
alert ('You didn\'t choose any of the checkboxes!');
return false;
} else {
return true;
}
}
}
最佳答案
getElementsByTagName
中有一个 s 。它是复数。它返回一个 NodeList 而不是单个元素。
根据您的 HTML,该 NodeList 将包含 2 个单独的 input
。
您必须循环遍历它(就像它是一个数组一样)并依次测试每个 input
的checked
属性。
关于javascript - getElementsByTagName 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22194208/