firefox document.getElementById 只获取第一个复选框?

2023-12-01


这个简单的代码检查是否至少标记了一个复选框,
当我尝试使用 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(使用前将#替换为@)

firefox document.getElementById 只获取第一个复选框? 的相关文章

随机推荐