【发布时间】:2012-07-01 21:52:08
【问题描述】:
我被一个简单的功能卡住了,它似乎不适用于不同的浏览器。
我需要有一个带有选中/取消选中其他复选框(子复选框)功能的复选框(主复选框)。单击主复选框时,它自己的状态必须转移到其他复选框的列表中。 例如:如果主复选框未选中并被单击(因此被选中),则所有子复选框也应被选中。
下面的代码在 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>
我喜欢相信解决方案应该是一个简单的解决方案,但是在花了半天时间搜索之后,如果能得到一些帮助,那就太好了。你能帮我解决这个问题吗?
【问题讨论】:
-
for循环在每个浏览器中都是语法错误。您能检查一下并确保您发布的内容与您遇到问题的实际代码完全相同吗? -
另外,切换布尔值的更简单方法:
checkbox.checked = !checkbox.checked; -
你好尖。我仔细检查了一下:完全一样
-
那个
for each语法是语法错误;应该没有each。 -
我将代码修改为 checkbox.checked = !checkbox.checked;结果是一样的。在 FF 中有效,但在 IE 中无效
标签: php javascript checkbox incompatibility