我对有史以来最愚蠢的浏览器感到沮丧,为此,我认为比尔盖茨必须被绞死。
我只想检查是否选中了复选框。
不知何故
cbox.checked
属性始终为false。还有什么我能做的。我看到了所有其他类似的问题,但没有任何东西可以用于这个愚蠢的IE。
修改
我忘了提一些可能相关的东西。 Html就像:
<input type='hidden' name='terms' value='0' />
<input type='checkbox' name='terms' id='terms' value='1' />
隐藏字段随之附加,因为我使用的是Zend Form,它总是在每个复选框上附加一个隐藏字段。
我正在使用protoype.js这就是为什么我不能使用jQuery。我在表格的onsubmit事件中检查它的检查与否。我想不知何故隐藏的字段同名是IE6
答案 0 :(得分:5)
答案 1 :(得分:2)
现在你发布了你的HTML你的问题很明确:你有两个名为'terms'的表单元素,IE 6找到了错误的表单元素,因为它有一个用尽的document.getElementById
的实现表单元素的name
属性作为id。解决方案是确保您没有与您希望通过id引用的任何元素具有相同名称的表单元素,并避免对不相关的表单元素使用相同的名称。
请注意,根据this blog post,IE 7中也存在此问题。
答案 2 :(得分:0)
我不得不同意,IE 6有时是一种痛苦,不幸的是我们必须迎合尚未升级的少数民族。但这在IE6中对我有用
编辑:阅读Tims Post后更新功能反映了这一点。经过测试并在IE6中运行。function chk(){ inps = document.getElementsByTagName("INPUT"); for(i = 0; i < inps.length; i++){ if(inps[i].name == "terms" && inps[i].type == "checkbox"){ alert(inps[i].checked); } } }