这个简单的代码检查是否至少标记了一个复选框,
当我尝试使用 Firefox 获取复选框数组时,我没有-我只是第一个,
相同的代码在 IE 中运行良好,
我是否需要为复选框元素创建不同的 ID 并迭代它们?
感谢您的帮助。
<html>
<head>
<script type="text/javascript">
function testCheckBox(){
var vehicle = document.getElementById('vehicle');
for (var i=0; i < vehicle.length; i++){
alert(vehicle[i].checked);
if (trucks[i].checked){
alert('at least one was selected');
return true;
}
}
alert('Please select one');
return false;
}
</script>
</head>
<body>
<form>
<input type="checkbox" name="vehicle" value="Bike" /> I have a bike<br />
<input type="checkbox" name="vehicle" value="Car" /> I have a car
<br />
<input type="button" name="test" value="test" onclick="testCheckBox();" />
</body>
</html>
getElementById() 永远不会返回数组。它只返回一个元素(因为 id 必须是唯一的 - 即具有多个具有相同 id 的元素是无效的 HTML.) getElementsByTagName() 就是您想要的:
var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
var el = inputs[i];
if (el.type == 'checkbox' && el.checked) {
alert(el.value + ' is checked');
}
}
(注意:较新的浏览器支持 getElementsByClassName,也可以使用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)