javascript:IE 中的 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=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>

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

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

最佳答案

Internet Explorer 对 nameid 感到困惑 - 强烈建议将这两个属性视为相同。

您可以通过 1) 确保您的文档中没有 ID/名称冲突,或 2) override IE's native getElementById-method 来修复它。

Read more about it here .

关于javascript:IE 中的 getElementById 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3708373/

相关文章:

PHP 获取浏览器 : how to identify ie7 versus ie6?

internet-explorer - Highcharts 将重复的 xmlns 属性添加到 IE 中的 SVG 元素

javascript - $.param 序列化对象到 JSON

javascript - 在 webview 中双指缩放 [Android]

html - 没有 JavaScript 的水平滚动

javascript - 如何在保留行的同时删除所有多余空格

javascript - Angular - 找不到模块

javascript - 一个 onComplete 回调用于执行两个函数中的最后一个

javascript - 在 Javascript 中从 HTML 表单数组获取值

jQuery 和 CSS 仅在多次刷新后加载