gpt4 book ai didi

jquery - 在 jquery 上处理多个事件处理程序按键

转载 作者:行者123 更新时间:2023-12-01 04:57:26 25 4
gpt4 key购买 nike

我有一个页面,其中有一个表单,我附加了一个 jquery 事件处理程序,通过按键盘上的 Enter 来提交此表单。

//Submit form when enter pressed
$(document).keypress(function (e) {
if (e.which == 13) {
$('form').submit();
}
});

我还可以使用 jquery uidialog() 在同一页面上显示模式。在模态中(在调用dialog()之前它是一个隐藏的div)有一个按钮,我还想让用户在按下键盘上的回车键时能够“单击”该按钮。我遇到的问题是,如果我在页面上使用与之前相同的事件处理程序,它将提交表单并单击按钮。

我该如何处理这个问题,以便第二个事件处理程序仅限于模式/不传播到文档的其余部分?我尝试过 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();
}
});

最佳答案

如果您使用 for Submit 处理表单(它将为您处理 Enter 按键)..那么您可以在模态上绑定(bind)按键事件处理程序以分隔两个不同的按键

$('form').submit(function(){}) //- will handle enter keypress and form submit action

$('modal').keypress(function(){}); //- will handle the keypress inside the modal

因此输入按键将被分开

http://jsfiddle.net/KMAYv/

关于jquery - 在 jquery 上处理多个事件处理程序按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13475352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com