【发布时间】:2015-08-16 22:01:50
【问题描述】:
我正在使用以下代码来检测按键事件中的多个键:
var down = [];
$(document).keydown(function (e) {
down[e.keyCode] = true;
}).keyup(function (e) {
if (down[17] && down[32]) {
// Do something
}
down[e.keyCode] = false;
});
但是,此热键 (CTRL + SPACE) 旨在在输入字段具有焦点时使用。所以每当我按下组合键时,它也会在输入字段中添加一个空格。
如何防止这种情况发生?我已经研究了在输入中禁用空格的方法(如this),但我无法弄清楚如何让它仅在我的按键事件中工作。
【问题讨论】:
-
另一种方法呢?您可以处理 keyup 事件并删除存在的任何空格。您无需检查密钥代码等。
-
e.preventDefault() -
e.preventDefault()是你所寻求的年轻学徒。 -
我无法让
e.preventDefault()在我的代码中工作。如果我将它添加到 keydown 事件中,它只会禁用所有输入。将它添加到 keyup 事件中什么也没做。我听从了你的建议,@MelanciaUK。在 keyup 上,我只需删除输入字段中的最后一个字符。虽然它不会阻止添加空间,但它会立即将其删除。谢谢!
标签: javascript jquery input keypress