JavaScript 基础
Document
运算符
深入数据和类型
函数进阶
原型、继承
类
浏览器存储
Web API
事件
错误处理
异步编程
网络请求
模块
练习
实例
工具与规范
软件架构模式
设计模式
keydown 与 keyup
顾名思义,当一个按键被按下时会触发 keydown
事件,当按键被抬起时会触发 keyup
事件。
event.code 与 event.key
event.code
表明了当前哪个按键被按下。event.key
表明了输入的字符。如果要区分大小写,使用 event.key
则更加方便。
$$warning
当使用输入法进行中文之类的输入时, event.key
则无法获取按下的键。
$$
$$demo
<input id="input" type="text" placeholder="输入测试一下" />
<textarea id="out" rows="10"></textarea>
<script>
input.onkeydown = function (event) {
out.textContent += event.code:${event.code}\tevent.key:${event.key}\n
out.scrollTop = out.scrollHeight
}
</script>
<style>
#input {
margin-bottom: 20px;
padding: 10px;
width: 100%;
}
#out {
width: 100%;
}
</style>
$$
$$warning
过去有一个 keypress
事件,还有事件对象的 keyCode
、charCode
和 which
属性。
大多数浏览器对它们都存在兼容性问题,以致使该规范的开发者不得不弃用它们并创建新的现代的事件(本文上面所讲的这些事件),除此之外别无选择。旧的代码仍然有效,因为浏览器还在支持它们,但现在完全没必要再使用它们。
keypress 已经在 MDN 中明确为废除状态,切记不要再使用。 $$