IE8で非常に奇妙な問題があります。私はこれを可能な限り以下の抜粋に減らしました:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
function dismissOperation() {
alert("Would dismiss");
}
</script>
</head>
<body >
<input type="text" />
<input type="text" onfocus="alert('text box got focus')" />
<button onclick="dismissOperation()" onfocus="alert('Dismiss button got focus')">Dismiss</button>
</body>
</html>
問題は、最初のテキストボックスに値を入力してからreturn / enterを入力すると、ボタンがフォーカスを受け取り、クリックイベントが(ボタン上で)配信されることです。
テストとして、2番目のテキスト入力ボックスを追加しました(上記のとおり)。2番目のボックスを追加しても、最初のボックスに値を入力すると、フォーカスはボタンに直接移動します。
フォーカスがボタンに移動し、クリックが配信される原因は何ですか?これに対する回避策はありますか?