我有一个页面,其中有一个表单,我附加了一个 jquery 事件处理程序,通过在键盘上按 Enter 来提交此表单。
//Submit form when enter pressed
$(document).keypress(function (e) {
if (e.which == 13) {
$('form').submit();
}
});
我还可以在同一页面上使用 jquery ui dialog() 显示模式。在模态(在调用 dialog() 之前是一个隐藏的 div)中有一个按钮,我还想让用户能够在他按键盘上的 Enter 键时“单击”该按钮。我遇到的问题是,如果我在页面上使用与以前相同的事件处理程序,它将同时提交表单并单击按钮。
我该如何处理,以便第二个事件处理程序仅限于模态/不传播到文档的其余部分?我试过 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();
}
});