gpt4 book ai didi

javascript - 禁用某些键,但不适用于文本区域和输入

转载 作者:行者123 更新时间:2023-12-01 07:12:00 24 4
gpt4 key购买 nike

我检查了这个精彩的网站数据库,但不知何故提供的答案不起作用。

为了防止出现故障,默认情况下我必须禁用箭头键和空格键。这适用于以下代码:

window.addEventListener("keydown", function(e) {
if([32, 37, 38, 39, 40].indexOf(e.keyCode) > -1) {
e.preventDefault();
}
}, false);

但是箭头键和空格键对于网站的某些区域(输入和文本区域字段)是必需的。为了允许,我做了如下操作:

window.addEventListener("keydown", function(e) {
if([32, 37, 38, 39, 40].indexOf(e.keyCode) > -1) && ($(event.target)[0]!=$("textarea, input")[0])) {
e.preventDefault();
}
}, false);

但是好像不行。非常感谢帮助!

最佳答案

在这种情况下,您可以选择为所有 textareainput 元素设置事件处理程序,并利用 event.stopPropagation() 以防止触发窗口事件处理程序。这样,元素捕获 keydown 事件,然后告诉 JavaScript 引擎不要触发 DOM 链中较高层元素(例如文档或窗口)的其他事件处理程序。

window.addEventListener("keydown", function(e) {
if([32, 37, 38, 39, 40].indexOf(e.keyCode) > -1) {
e.preventDefault();
}
}, false);

使用 jQuery:

// Function gets run after document is loaded
$(function(){
$("textarea, input").keydown(function(e){
e.stopPropagation()
})
});

编辑:工作jsFiddle.

关于javascript - 禁用某些键,但不适用于文本区域和输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25416767/

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