IE中的javascript:getElementById问题

Gau*_*rma 9 html javascript 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=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>
Run Code Online (Sandbox Code Playgroud)

问题是在IE中,click事件不会触发.我缩小了问题的位置.问题是复选框之前有一个隐藏的输入,这两个元素具有相同的名称.我不确定为什么这会导致问题(毕竟,我使用的是getElementById,而隐藏的元素甚至没有id).

这种行为是否有正当理由(仅适用于IE.在Firefox中正常工作......一如既往:()?还有一个很好的解决方法(我可以做document.getElementsByName('caution_c')[1]但我不想...)

Mag*_*nar 13

Internet Explorer中迷糊了nameid-强烈推荐,好像他们是相同的对待这两个属性.

您可以通过1)确保文档中没有id/name冲突,或者2)覆盖IE的本机getElementById方法来修复它.

在这里阅读更多相关信息.