フォームがあるページがあり、jquery イベント ハンドラーをアタッチして、キーボードの Enter キーを押してこのフォームを送信します。
//Submit form when enter pressed
$(document).keypress(function (e) {
if (e.which == 13) {
$('form').submit();
}
});
同じページで jquery ui dialog() を使用してモーダルを表示することもできます。モーダル (dialog() が呼び出されるまで非表示の div です) にはボタンがあり、ユーザーがキーボードで Enter キーを押したときにボタンを「クリック」できるようにしたいと考えています。私が抱えている問題は、ページで以前と同じイベントハンドラーを使用すると、フォームの送信とボタンのクリックの両方が行われることです。
2 番目のイベント ハンドラーがモーダルに制限され、ドキュメントの残りの部分には反映されないようにするにはどうすればよいですか? そのシナリオでは機能しない e.stopPropagation を試しました。
//Handler on the modal
$(document).keypress(function(e) {
e.stopPropagation();
if($('#button-doc-validate').is(':visible') && e.which == 13) {
//Click the button
$('#button-doc-validate').click();
}
});