javascript:IE中的getElementById问题

javascript:IE中的getElementById问题,javascript,html,internet-explorer,getelementbyid,Javascript,Html,Internet Explorer,Getelementbyid,我正在尝试使用JavaScript将单击事件附加到复选框。下面显示的是HTML和JS <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=

我正在尝试使用JavaScript将单击事件附加到复选框。下面显示的是HTML和JS

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <input type="hidden" name="caution_c" value="0">
        <input type="checkbox" id="caution_c" name="caution_c" value="1" tabindex="120">
        <script type="text/javascript">
            var cb = document.getElementById('caution_c');
            cb.onclick = function() {
                alert(1);
            }
        </script>
    </body>
</html>

var cb=document.getElementById('caution_c');
cb.onclick=函数(){
警报(1);
}
问题是在IE中,click事件不会触发。我已经缩小了问题的范围。问题在于复选框前面有一个隐藏的输入,并且这两个元素都有相同的名称。我不确定这为什么会导致问题(毕竟,我使用的是getElementById,而隐藏的元素甚至没有id)


这种行为是否有合理的理由(即只在Firefox中运行良好…一如既往:()?还有,是否有好的解决方法(我可以做document.getElementsByName('caution_c')[1],但我不想……)Internet Explorer对
name
id
感到困惑-强烈建议将这两个属性视为相同

您可以通过1)确保文档中没有id/名称冲突,或2)进行修复


.

尝试使用不同的事件,例如
onchange
onfocus
,以查看这是否解决了问题。另外,我不认为如果用户点击复选框,
onclick
会被解雇,这可能不是你想要它工作的方式。

我同意,IE在html级别的理解能力很差。
我宁愿添加到按钮的链接,而不是使用锚元素,因为IE在锚级别使用
document.getElementById()
时遇到问题。在按钮上尝试同样的方法,对其他用户也有效。

@Guarav-疯狂?是的。那是给你的。你认为为什么这么多网络开发者如此强烈地憎恨微软。这个小故障只是冰山一角(希望新的IE版本9能有所改进,但这并不能让我们所有人都不必支持那些破旧的IE版本。