web-dev-qa-db-ja.com

入力ボタンがフォームを送信しないようにするためのクリーンな方法

これを行うJavaScriptソリューションはたくさんありますが、もっと簡単な方法があるはずです。

私は本当にシンプルなフォームを持っています-1つのマルチラインテキストボックスと送信ボタンです。ユーザーが「フォーマットされた」テキスト(つまり、電子メール、段落、改行など)を送信できるようにしたい

ただし、ユーザーがEnterキーを押して改行を入れると、フォームが送信されます。

これは一般的な問題であるため、これを制御するプロパティまたは何かがあるはずです。解決策としてのJavaScriptは少し複雑すぎるようです。

19
Ben

送信ボタンUseSubmitBehaviorプロパティをに設定します[〜#〜] false [〜#〜 ]。 (解決策を見つけた ここ

21
Max

次のコードは私の問題を解決しました:

http://www.itorian.com/2012/07/stop-from-submission-posting-on-enter.html

<script type="text/javascript">
    //Stop Form Submission of Enter Key Press
    function stopRKey(evt) {
        var evt = (evt) ? evt : ((event) ? event : null);
        var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
        if ((evt.keyCode == 13) && (node.type == "text")) { return false; }
    }
    document.onkeypress = stopRKey;
</script>

これをマスターページまたは必要なページだけに配置します。

13
alansiqueira27

TextBoxを囲むフォームまたはパネルの DefaultButton を非表示(display:none)ボタンに設定できます。この方法では、ユーザーが(ブラウザーに依存する)JavaScriptなしでEnterキーを押したときに何が起こるかを完全に制御できます。そのonclick-eventを処理しない場合、Enterキーは抑制されます。

http://geekswithblogs.net/ranganh/archive/2006/04/12/74951.aspx

5
Tim Schmelter

送信動作を使用するとうまくいきませんでしたが、これは

 $(function () {
        $(window).keydown(function (e) {
            if (e.keyCode == 13) {
                e.preventDefault();
                return false;
            }
        });
    })

私のために働いた

2
Ahmad Tijani

HTMLフロントエンドでは、bodyタグをbody onkeydown = "return(event.keyCode!= 13)に置き換えるだけです。

0

あなたはこれを試しましたか? - テキストエリアにキーを入力

0
Mukesh