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]でもしたくない…)