如何检查是否在IE 6中选中了复选框

时间:2009-10-15 22:54:23

标签: javascript internet-explorer

我对有史以来最愚蠢的浏览器感到沮丧,为此,我认为比尔盖茨必须被绞死。

我只想检查是否选中了复选框。

不知何故

 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

3 个答案:

答案 0 :(得分:5)

$('#myElement').is(":checked")

忽略IE6废话,只使用jQuery。

http://www.jquery.com

答案 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);
         }
        }
       }