CTRL keyCode(17)无法在JavaScript中运行?

时间:2015-08-25 14:56:43

标签: javascript javascript-events keyboard addeventlistener keycode

我有以下代码,它将eventListener添加到HTML textarea。它应该控制日志记录被按下的键码,如果keyCode是==到17(CTRL),控制台日志"你按下了CTRL。"。出于某种原因,当我在textarea中按CTRL时,它不是控制台记录被按下的keyCode,也不是"你按下了CTRL。"如果我按下" A"例如,控制台日志返回" 97"哪个是对的。它也适用于所有其他字母。

以下是代码:

document.getElementById("msgBox").addEventListener("keypress",function(e){
    console.log(e.keyCode);
    if(e.keyCode == 17){
        console.log("You pressed CTRL.");
    }
});

我做错了什么?

更新:它还没有使用其他特殊键,例如" shift,Fx,alt,home等。

textarea的HTML:

<textarea id="msgBox" placeholder="Enter your message" autofocus></textarea>

3 个答案:

答案 0 :(得分:3)

出于某种原因,特殊键不适用于keypress事件,但它们适用于keydown事件。

答案 1 :(得分:1)

请改为:( e.which == 17)

答案 2 :(得分:0)

检查e.ctrlKey

请参阅https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/ctrlKey

上的MDN文档

如果您想要一种简单的方法来管理按键,您可以使用像https://dmauro.github.io/Keypress/

这样的专用库