【发布时间】:2015-11-19 08:34:52
【问题描述】:
我有以下代码将 eventListener 添加到 HTML 文本区域。它应该控制台记录被按下的键码,如果 keyCode 是 == 到 17 (CTRL),则控制台记录“你按下了 CTRL。”。出于某种原因,当我在文本区域中按下 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 等。
文本区域的 HTML:
<textarea id="msgBox" placeholder="Enter your message" autofocus></textarea>
【问题讨论】:
-
能否也显示输入字段的HTML代码?
-
现在添加。 @danielaKay
-
我刚刚在 Firefox 和 Chrome 中尝试了你的 jsfiddle,但它们都不起作用。 ??
-
是的,对不起。我只测试了字母,并且 that 与
e.which一起使用:-/ ctrl 键仍然不起作用。我的错。 -
是的,信件确实有效,我在帖子中说过:P。此外,它不适用于其他特殊键,而不仅仅是 ctrl。
标签: javascript keyboard dom-events addeventlistener keycode