この問題は、InternetExplorerでのみ発生しています。他のブラウザでは、キーボードのEnterキーを押してフォームを送信できますが、IE8では実際にボタンをクリックする必要があります。
しばらくの間修正を探して、いくつか見つけましたが、それでも機能しません。私が使用しているJavaScriptは、Enterキーを押すキーコード13を探しているはずですが、Enterキーを押すと、フォームを送信せずにフィールドがクリアされ、キーコードはトリガーされません。キーコードは文字の結果のみを返し、Shift/Enterの結果は返しません。
これが私の現在のソリューションのHTMLです。
<form action="chatscreen.php" name="loginform" method="post">
<p>Please enter your name to continue:</p>
<label for="name">Name:</label>
<input type="text" name="name" id="name" onkeyup="whichButton("loginform","enter")"/>
<button type="submit" name="enter" id="enter" value="Enter">Button</button>
</form>
そして、これが私が修正として実装しようとしたjavascriptです:
<script type="text/javascript">
function whichButton(formname,elementname) {
alert("got a key = " + event.keyCode);
if (event.keyCode === 13) {
var followingInput = document.getElementById(elementname);
document.formname.elementname.click();
}
}
</script>