如何取消keydown
键盘上特定键的 ,例如arrows
HTML 页面中的(空格、回车和)。
取消 HTML 中的 keydown
IT技术
javascript
html
keydown
2021-03-15 12:42:55
6个回答
如果您只对您提到的示例键感兴趣,则该keydown
事件将发生,但较旧的、Blink 之前的 Opera 版本(至少包括版本 12)除外,您需要取消该keypress
事件。在keydown
事件中可靠地识别不可打印的键比keypress
事件容易得多,因此以下使用在keydown
处理程序中设置的变量来告诉keypress
处理程序是否抑制默认行为。
var cancelKeypress = false;
document.onkeydown = function(evt) {
evt = evt || window.event;
cancelKeypress = /^(13|32|37|38|39|40)$/.test("" + evt.keyCode);
if (cancelKeypress) {
return false;
}
};
/* For Opera */
document.onkeypress = function(evt) {
if (cancelKeypress) {
return false;
}
};
jQuery 有一个很好的KeyPress 函数,它允许您检测按键按下,那么它应该只是检测键值并为您想要忽略的键值执行 if 的情况。
编辑:例如:
$('#target').keypress(function(event) {
if (event.keyCode == '13') {
return false; // or event.preventDefault();
}
});
只是返回错误。请注意,在 Opera 上这是行不通的。您可能想改用 onkeyup 并检查最后输入的字符并处理它。或者更好地使用 JQuery KeyPress
这当然是非常古老的线程。为了在 IE10 和 FireFox 29.0.1 上实现魔法,您绝对必须在keypress
(非keydown
)事件侦听器函数中执行此操作:
if (e.preventDefault) e.preventDefault();