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中迷糊了name和id-强烈推荐,好像他们是相同的对待这两个属性.
您可以通过1)确保文档中没有id/name冲突,或者2)覆盖IE的本机getElementById方法来修复它.