2

この問題は、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>
4

2 に答える 2

0
<script type="text/javascript">
    function whichButton(formname,elementname) {
       var keyID = (window.event) ? event.keyCode : keyEvent.keyCode;
       if (keyID === 13) {
          var followingInput = document.getElementById(elementname);
          document.formname.elementname.click();
       }
    }
 </script>
于 2012-11-01T08:38:17.903 に答える
0

単純; defaultbuttonプロパティを設定するだけです

 <form id="Form1" defaultbutton="enter" action="chatscreen.php" name="loginform" method="post"> 

お役に立てば幸いです:)

于 2012-11-01T08:43:23.467 に答える