我陷入了一个简单的功能,它似乎不适用于不同的浏览器。
我需要有一个复选框(主复选框),具有选中/取消选中其他复选框(子复选框)的功能。单击主复选框时,必须将其自己的状态传输到其他复选框列表中。例如:如果未选中主复选框并被单击(因此处于选中状态),则所有子复选框也应被选中。
下面的代码在 Firefox 13.0.1 中效果很好,但在 Internet Explorer 9 中则不然。
下面的所有代码都在同一个文件中:
JavaScript
<script type="text/javascript">
function toggle(source) {
checkboxes = document.getElementsByName('cb[]');
for each(var checkbox in checkboxes)
checkbox.checked = checkbox.checked == true ? false : true;
}
</script>
单击以选中和取消选中的复选框
<td width="3%"><input name="cb_all" type="checkbox" id="cb_all" onClick="toggle(this)"></td>
单行
<td><input name="cb[]" type="checkbox" value="<?php echo $user->id;?>" id="cb[]"></td>
我愿意相信解决方案应该是一个简单的解决方案,但是在花了半天的搜索之后,得到一些帮助会非常好。你能帮我这个吗?
这是因为Internet Explorer没有一个名为getElementsByName
的方法。解决方法是使用getElementsByTagName
并检查每个,您可以在 http://webbugtrack.blogspot.com/2007/08/bug-411-getelementsbyname-not-work中获取更多信息.html