更新时间:2022-03-17 来源:黑马程序员 浏览量:
键盘事件是指用户在使用键盘时触发的事件。例如,用户按Esc键关闭打开的状态栏,按Enter键直接完成光标的上下切换等。下面列举几个常用的键盘事件,如表所示。
| 事件名称 | 事件触发时机 |
| keypress | 某个键盘按键被按下时触发。不识别功能键,如Ctrl、Shit、箭头等 |
| keydown | 某个键盘按键被按下时触发 |
| keyup | 某个键盘按键被松开时触发 |
需要注意的是,keypress事件保存的按键值是ASCⅡ码,keydown和keyup事件保存的按键值是虚拟键码,keydown和keypress如果按住不放的话,会重复触发该对应事件。keyup和keydown事件不区分字母大小写,而keypress区分字母大小写。
在发生keydown和keypress事件时,event事件对象的keycode属性会包含一个值,该值与键盘上的特定值对应。keycode的值与ASCⅡ码对应的值相同,例如,keycode值为13表示Enter键,keycode值为9表示Tab键。读者可参考MDN等手册进行查看,此处不再详细列举。
键盘事件也有相应的键盘事件对象KeyBoardEvent,该对象是跟键盘事件相关的一系列信息的集合。根据键盘事件对象中的keyCode属性可以得到相应的ASCIⅡ码值,进而可以判断用户按下了哪个键。
为了让大家更好地理解键盘事件的使用,下面我们通过案例的形式进行展示。检测用户是否按下了s键,如果按下s键,就把光标定位到搜索框里面,示例代码如下:
<body>
<input type="text">
<script>
var search = document.querySelector ('input');
document.addEventListener('keyup', function (e) {
if (e.keyCode === 83) {
search.focus();
}
});
</script>
</body>上述代码中,第5行代码绑定了鼠标弹起事件,当输入完毕后再进行检测。第6~8行代码使用键盘事件对象里面的keyCode判断用户按下的是否是s键,如果是,则让搜索框获取焦点,帮助用户进行输入。
黑马程序员 AI 运维|10 大技术阶段 + 10 大实战项目,从 Linux 到 AI 大模型运维全掌握
2026-04-09黑马程序员 AI 运维|云原生 + 大模型 + 信创三位一体,培养企业紧缺复合型运维人才
2026-04-09黑马程序员AI测试|上市品牌背书,实战赋能,助力冲击年薪30万+
2026-04-09全国13城校区全覆盖|黑马程序员AI测试,就近学、就近就业,冲击高薪
2026-04-09黑马程序员AI测试|10+企业级项目实战,学完即具备AI测试硬核实力
2026-04-09黑马程序员AI测试|七大实战阶段+12天大模型测试升级,从入门到高薪全覆盖
2026-04-09