2011-10-10 6 views
0

このようなものは、ユーザーがアンカーをクリックしたときにのみ機能します。しかし、フォーム内にユーザーが[enter]キーを押したときにもフォームが送信されます。アンカーだけを使用して同じ機能を使用するにはどうすればよいですか? (溶液による)アンカーを送信ボタンとして機能させる。クリックイベントだけでなく、

$('a.submit').click(function() { 
    $(this).closest('form').submit(); 
}); 

Thanks.-

EDIT:

この組み合わせは、(少なくとも)FFとクロームで動作します! のアンカーをクリックしてを送信するか、[enter]を押してください。

$('#my_form a.submit').click(function(e) { 
    e.preventDefault(); 
    $(this).closest('form').submit(); 
}); 

$('#my_form').keydown(function(e) { 
    if (e.keyCode != 13) 
     return; 
    $(this).submit(); 
}); 

ご意見ありがとうございました!

+0

Coudlあなたは後にしているものを明確に?フォームがEnterキーで送信されたときに実行するコードを取得しようとしていますか?もしそうなら、あなたはハンドラでさえも見てみたいかもしれません。それ以外の場合、私はあなたが何をしているかわからない... – Chris

+0

@chrisいいえ、私はこのアンカーでフォームを提出したいと思います。 AFAIKでは、サブミットアクションをトリガするためにサブミットまたはイメージボタンが必要です(クリックするか[enter]を押す)。 –

+0

ああ、そうです。 Enterを押すとボタンが必要になる場合があります。私はそれがボタンを表示する必要はありませんが、ダミーの1つを追加し、その可視性をfalseに設定するか、CSSを使用してnoneに表示し、それがまったく役立つかどうかを見てみるという気持ちがあります。しかし、これを行うための良い方法があるかもしれません... – Chris

答えて

1

いくつかのテストの後、これは完全に働いている:

$('#my_form a.submit').click(function(e) { 
    e.preventDefault(); 
    $(this).closest('form').submit(); 
}); 

$('#my_form').keydown(function(e) { 
    if (e.keyCode != 13) // Enter or Return keystroke 
     return; 
    $(this).submit(); 
}); 
1

は、アンカーを発射からのクリックイベントを防ぐ必要があります。

$('a.submit').click(function(event) { 
    event.preventDefault(); 
    $(this).closest('form').submit(); 
}); 
+0

素晴らしいですが、ここではFFやクロームのいずれかの暑い作品があります。 –

関連する問題