gpt4 book ai didi

jquery - 如何阻止 keydown 事件干扰表单字段?

转载 作者:行者123 更新时间:2023-12-03 22:56:58 24 4
gpt4 key购买 nike

我已经绑定(bind)了一些事件,使其在按下左右箭头键时发生,如下所示:

$(document).keydown(function(e) {
switch(e.which) {
case 39: $("#next").trigger('click');
break;

case 37: $("#prev").trigger('click');
break;
}
});

但是,显然,如果您在表单中并按左右键在文本中移动,则会触发这些事件。

如何更改此设置以避免发生这种情况?

最佳答案

您可以检查事件的目标( more information here )

$(document).keydown(function(e) {
//var target = (e.target) ? e.target : e.srcElement; // IE uses srcElement
// jQuery seems to handle this, so e.target should be fine

if(e.target.nodeName != 'INPUT') {
switch(e.which) {
case 39: $("#next").trigger('click');
break;

case 37: $("#prev").trigger('click');
break;
}
}
});

或者您可以通过将事件处理程序附加到输入元素来防止事件冒泡:

$('input').keydown(function(e) {
e.stopPropagation();
});

更新:

同样,您可能想测试 TEXTAREA 的节点名称。

这是一个示例:http://jsfiddle.net/86CKw/1/

关于jquery - 如何阻止 keydown 事件干扰表单字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3415172/

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