【问题标题】:Why event.keyCode returns always 65 even if i type 'a' or 'A'?为什么即使我输入“a”或“A”,event.keyCode 总是返回 65?
【发布时间】:2019-10-05 15:05:58
【问题描述】:

我正在尝试使用香草 javascript 阅读网站上按下的键盘。即使我输入“a”或“A”,键码也是相同的。有没有办法不按下键而是输入字母。或者,……获取大写或小写的正确方法真的是获取 shiftKey 值?

<html>
    <body>
        <script>
            window.onload = function (e) {
                window.addEventListener('keydown', function (event) {
                    console.log(JSON.stringify({
                        lastKey: {
                            shiftKey: event.shiftKey,
                            code: event.keyCode,
                            char: String.fromCharCode(event.keyCode),
                        }
                    }))
                });
            };
        </script>
    </body>
</html>

当我按'a'时:

{"lastKey":{"shiftKey":false,"code":65,"char":"A"}}

当我按下“shift”时:

{"lastKey":{"shiftKey":true,"code":16,"char":"\u0010"}}

当我按 'a with shift' 时:

{"lastKey":{"shiftKey":true,"code":65,"char":"A"}}

【问题讨论】:

  • keyCode 显示实际按下的 keyboard 键,而不是字符代码。
  • e.keyCode 不是按键产生的字符的代码,而是按键本身的代码。如果您需要实际字符,请改用e.key
  • 一个简单的日志和整个事件对象的检查可能会帮助你自己解决这个问题
  • @Teemu 啊!这是event.key。我很困惑。谢谢。

标签: javascript


【解决方案1】:

听起来你在找event.key

foo.addEventListener('keydown', (event) => {
  console.log(event.key);
})
&lt;textarea id="foo"&gt;&lt;/textarea&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 2011-05-03
    相关资源
    最近更新 更多