1

こんにちは、これは私のファイルの頭にあるものです:

function entsub(event)
        {
              if (event && event.which == 13) 
                write1();
              else
            return true;

        }

体内では、私のフォームは次のとおりです。

<form id="writeform" name="writeform">
  Message: <br />
  <textarea name="message" rows="3" id="message" style="width:90%;" onkeypress="return entsub(event)"></textarea>

  <br />
  <input name="send" type="button" id="send" value="Send" onclick="write1()" />
  <span id="sent"></span>
  &nbsp;&nbsp;&nbsp; <input type="reset" value="Reset" />
  </form>

テキストエリアにいるときにEnterキーを押すと、新しい行は作成されずに送信されるようにする必要があります[私のを参照<input type="button">]

しかし、それはうまくいきません!新しい行を作り続けています... 現在IE8を使用しています。

4

6 に答える 6

2

jquery を使用する場合は、次のようにします。

        $(document).ready(function() {

            $("#txtTest").keypress(function(e) {
                var code = (e.keyCode ? e.keyCode : e.which);

                if (code == 13) {
                    doSomething();
                    return false;
                }
            });

        });

        function doSomething() {
            alert("I did it!");
        }

txtTest はテキストエリアの ID です。

于 2009-10-26T18:49:10.507 に答える
2

通常、クロス ブラウザ テストは次のとおりです。

function entsub(e) {
    if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
        write1();
    } 
    return true;
}
于 2009-10-26T18:44:23.903 に答える
2

Well i'm not sure what write1() does, but it would be prudent to return false when the condition is met..

function entsub(event)
{
    if (event && event.keyCode == 13) {
        write1();
        return false; //Return false to prevent default execution
                      //Some browsers use event.preventDefault() etc.
    }else{
        return true;
    }
}
于 2009-10-26T18:37:44.773 に答える
1

Use keyCode instead of which.

Depending on the browser, you need to prevent the default action. Check out event.cancelBubble and event.returnValue for IE and event.stopPropagation() and event.preventDefault() for Firefox.

于 2009-10-26T18:38:58.453 に答える
0

よりクリーンな方法は、フォーム上で を に変更し、<input type="button">をaに<input type="submit">移動することです。これにより、エラーが発生しやすい JavaScript をそれほど必要とせず、より多くのケースで機能します。onclick="..."onsubmit="..."

于 2009-10-26T19:05:31.443 に答える
0

js に関連しない方法については、 type="submit" の入力を使用するだけで、Enter を使用してフォームを送信できると確信しています。その時点で、イベントを onsubmit に移動するだけです。

于 2009-10-26T19:00:21.187 に答える