如何获取删除键的 event.keyCode?

10
2个回答

27

不要使用keypress事件,而应该使用keyup或keydown事件:keypress事件用于可打印字符,而keydown将捕获非打印按键,包括删除、退格和回车。

http://jsfiddle.net/5cNTn/9/
$('body').keydown(function(event){
    var letter = String.fromCharCode(event.which); 
    if(event.keyCode == 32){console.log('SPACE BAR');}
    if(event.keyCode == 46){console.log('Delete Key Pressed');}
    console.log(event); 
    console.log(event.keyCode); 
 });

好的。退格或删除键是否会对浏览器窗口产生影响,我能取消吗? - Squirrl
1
是的!在某些浏览器中,按下退格键会返回到上一页- preventDefault 可以帮助解决这个问题。 - Max
像这样 if(event.keyCode == 46){event.preventDefault(); console.log('Delete Key Pressed');} - Squirrl
1
是的!但请记住,这也可能影响在可编辑输入字段中按退格键删除文本 :-) - Max
这是关于可打印字符的按键 vs 按下的好信息。 - fizch

13

使用 keydown 和现代 JS!

document.addEventListener("keydown", function(event) {
    if (event.key === "Delete") {
        // Do something
    }
});

现代风格,lambda + 解构

document.addEventListener("keydown", ({key}) => {
    if (key === "Delete") {
        // Do something
    }
})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接