【发布时间】:2014-08-21 01:00:06
【问题描述】:
我检查了这个很棒的网站数据库,但不知何故提供的答案不起作用。
为了防止出现故障,默认情况下我必须禁用箭头键和空格键。这适用于这段代码:
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);
但它似乎不起作用。非常感谢您的帮助!
【问题讨论】:
-
你只是忘记了一个左括号..应该是这样的
if(([32, -
所以您将目标与页面上的第一个输入进行比较?所以只有页面上的第一个输入/文本区域才会如此。所有其他的都不会是真的......
-
@robert-rozas 感谢您的指出,但是有了这个设置,键仍然可以正常工作
-
考虑为输入和文本区域设置一个处理程序并使用
e.stopPropagation() -
@JCOC611 感谢您的快速回复!第二个代码是从@stackoverflow 找到的两个答案放在一起...你能举例说明它的外观吗?
标签: javascript jquery html preventdefault