これを行うJavaScriptソリューションはたくさんありますが、もっと簡単な方法があるはずです。
私は本当にシンプルなフォームを持っています-1つのマルチラインテキストボックスと送信ボタンです。ユーザーが「フォーマットされた」テキスト(つまり、電子メール、段落、改行など)を送信できるようにしたい
ただし、ユーザーがEnterキーを押して改行を入れると、フォームが送信されます。
これは一般的な問題であるため、これを制御するプロパティまたは何かがあるはずです。解決策としてのJavaScriptは少し複雑すぎるようです。
送信ボタンのUseSubmitBehaviorプロパティをに設定します[〜#〜] false [〜#〜 ]。 (解決策を見つけた ここ )
次のコードは私の問題を解決しました:
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>
これをマスターページまたは必要なページだけに配置します。
TextBoxを囲むフォームまたはパネルの DefaultButton を非表示(display:none)ボタンに設定できます。この方法では、ユーザーが(ブラウザーに依存する)JavaScriptなしでEnterキーを押したときに何が起こるかを完全に制御できます。そのonclick-eventを処理しない場合、Enterキーは抑制されます。
http://geekswithblogs.net/ranganh/archive/2006/04/12/74951.aspx
送信動作を使用するとうまくいきませんでしたが、これは
$(function () {
$(window).keydown(function (e) {
if (e.keyCode == 13) {
e.preventDefault();
return false;
}
});
})
私のために働いた
HTMLフロントエンドでは、bodyタグをbody onkeydown = "return(event.keyCode!= 13)に置き換えるだけです。
あなたはこれを試しましたか? - テキストエリアにキーを入力