2011-01-24 11 views
1

Enterキーが押されたときに送信ボタンをクリックするとフォーム$ .ajax({})を送信したくありません。試してみてください

$('#SubmitButton').click(function(event){ 

if(event.keyCode==13) { 
    //do something 
} 

}); 

私は上記をどのようにしますか?

おかげ ジャン

+0

すでに回答済み:http://stackoverflow.com/questions/895171/prevent-users-from-submitting-form-b​​y-hitting-enter – mdrg

答えて

3

まあ、クリックイベントハンドラ内でkey-またはcharCodeevent.whichに含まれていないため、あまり意味がありません。 keypressイベントを1つ以上の入力テキストコントロールにバインドする必要があります。このコントロールでは、ユーザーが入力することができます(したがって、リターンをトリガーします)。イベントハンドラからfalseを返す

$('input:text').bind('keypress', function(e) { 
    if(e.which === 13) 
     return false; 
}); 

は2つのことが発生します。

  • .preventDefaultは()イベントオブジェクト
  • .stopPropagation(上と呼ばれている)
イベントオブジェクトで呼び出されます

これは、があなたの<form>ノードまでバブリングするのを止めるはずです。したがって、実際にe.stopPropagation()に電話するだけで十分です。

1

私は同じことをやってますが、フォームに.submit()とそれを結合しようとするだろう。それから、falseを返すことができます。

編集:これは便利なのでここに残しておきます。しかし、私はすぐに、この質問ではなく、あなたがこの方法でキー押下を追跡することはできないと考えていることを認識しました。私はちょうど目が覚めて、しばらくのうちにJavaScriptに本当に触れていないことを非難します。混乱して申し訳ありません!

関連する問題