当使用jQuery文档中的示例代码来生成keypress事件处理程序时,我无法捕获 Delete 键。在FireFox中按下删除键时,下面的代码段将记录0
:
$(document).keypress(function(e) {
console.log(e.which);
});
似乎必须有一种方法来捕获删除键,但这是一个含糊不清的术语,因此谷歌并没有证明对它有太多帮助。
答案 0 :(得分:188)
您不应使用keypress
事件,而应使用keyup
或keydown
事件,因为keypress
事件适用于真实(可打印)字符。 keydown
在较低级别处理,因此它将捕获所有非打印键,如 delete 和输入。
答案 1 :(得分:75)
$('html').keyup(function(e){
if(e.keyCode == 46) {
alert('Delete key released');
}
});
来源:javascript char codes key codes来自www.cambiaresearch.com
答案 2 :(得分:30)
Javascript密钥代码
除了这个细节,Colin& Tod的答案正在起作用。
答案 3 :(得分:7)
更新,更清洁:使用event.key
。没有更多的任意数字代码!
document.addEventListener('keydown', function(event) {
const key = event.key; // const {key} = event; ES6+
if (key === "Delete") {
// Do things
}
});
答案 4 :(得分:0)
您可以使用 jQuery 跟踪删除/退格键,如下所示:
$(document).keyup(function(e){
if(e.key === "Backspace") {
alert('Delete key/ backspace');
}
});