問題は非常に基本的で基本的なものです。Internet Explorer には「既定の」送信ボタンがありません。すべてのブラウザーは、ENTERキーを介してフォームを送信する場合の動作方法を自由に選択できます。最新のブラウザーは、最初の送信ボタンの値を (クリックされたかのように) 送信する論理的な方法を選択しますが、IE は IE であるため、友好的でない方法を選択します。 . IE のコードを書かない限り、この「問題」の根本を解決する方法はありません。
これを回避する唯一の方法は、JavaScript を使用して、ブラウザが を押したときに特定の送信ボタンを選択するように強制ENTERすることです。このために、最初に一意の ID をログイン ボタンに追加します。
<input type="submit" name="submit" value="login" id="btnLogin" />
onkeypress
ハンドラーをフォームタグに追加します。
<form action="YourPage.asp" method="POST" onkeypress="if (event.keyCode === 13) { document.getElementById('btnLogin').click(); return false; }">
ENTERこれにより、フォーム内で が押されるたびに、ログイン ボタンのクリックがエミュレートされます。
このアプローチの唯一の欠点は、フォームに が含まれている場合、それらを<textarea>
押すENTERとフォームも送信されることです。これは良いことではありません。それらが振る舞うべきように振る舞わせるには、それぞれにこれを追加します:
<textarea onkeypress="event.cancelBubble = true;">
<form>
上記は、キープレスイベントへのバブリングからイベントをキャンセルします。