1

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番目のボックスを追加しても、最初のボックスに値を入力すると、フォーカスはボタンに直接移動します。

フォーカスがボタンに移動し、クリックが配信される原因は何ですか?これに対する回避策はありますか?

4

1 に答える 1

5

デフォルトでは、ボタン要素は送信ボタンと見なされ、これが理由である可能性があります。ボタン要素に属性type="button"を指定します。

于 2012-10-12T12:55:46.733 に答える