键盘事件及 KeyCode 对照表
2025-10-21 19:26:33
键盘事件及 KeyCode 对照表
键盘事件
用户操作键盘时对应事件的 3 种类型:
keydown:在键盘上按下某个键时触发。如果按住某个键,会不断触发该事件。该事件处理函数返回 false 时,会取消默认的动作。
keypress:按下某个键盘键并释放时触发。如果按住某个键,会不断触发该事件。该事件处理函数返回 false 时,会取消默认的动作(如输入的键盘字符)。
keyup:释放某个键盘键时触发。该事件仅在松开键盘时触发一次,不是一个持续的响应状态。
Tips: 某些浏览器不允许使用 keypress 事件获取按键信息。
// 监听方式一: on + keydown
document.onkeydown = function (e) {
// 当检测到键盘按下 w 键时的操作
if (e.keyCode === 87) {
// ...
}
}
// 监听方式二: addEventListener + keyup
document.addEventListener('keyup', function(e) {
// 当检测到键盘放开 w 建时的操作
if (e.keyCode === 87) {
// ...
}
})
键盘事件属性
属性
说明
keyCode
该属性包含键盘中对应键位的键值
charCode
该属性包含键盘中对应键位的 Unicode 编码,仅 DOM 支持
target
发生事件的节点(包含元素),仅 DOM 支持
srcElement
发生事件的元素,仅 IE 支持
shiftKey
是否按下 Shift 键,如果按下返回 true,否则为false
ctrlKey
是否按下 Ctrl 键,如果按下返回 true,否则为false
altKey
是否按下 Alt 键,如果按下返回 true,否则为false
metaKey
是否按下 Mtea 键,如果按下返回 true,否则为false,仅 DOM 支持
键盘响应顺序
当按下键盘时,会连续触发多个事件,它们将按如下顺序发生。
对于字符键来说,键盘事件的响应顺序:keydown → keypress → keyup。
对于非字符键(如功能键或特殊键)来说,键盘事件的相应顺序:keydown → keyup。
如果按下字符键不放,则 keydown 和 keypress 事件将逐个持续发生,直至松开按键。
如果按下非字符键不放,则只有 keydown 事件持续发生,直至松开按键。
KeyCode 对照表
字母数字键键码值
按键
键码
按键
键码
按键
键码
按键
键码
A
65
J
74
S
83
1
49
B
66
K
75
T
84
2
50
C
67
L
76
U
85
3
51
D
68
M
77
V
86
4
52
E
69
N
78
W
87
5
53
F
70
O
79
X
88
6
54
G
71
P
80
Y
89
7
55
H
72
Q
81
Z
90
8
56
I
73
R
82
0
48
9
57
数字键盘键码值
按键
键码
按键
键码
0
96
8
104
1
97
9
105
2
98
*
106
3
99
+
107
4
100
Enter
5
101
-
109
6
102
.
110
7
103
/
111
功能键键码值
按键
键码
按键
键码
F1
112
F7
118
F2
113
F8
119
F3
114
F9
120
F4
115
F10
121
F5
116
F11
122
F6
117
F12
123
控制键键码值
按键
键码
按键
键码
按键
键码
按键
键码
BackSpace
8
Esc
27
Right Arrow
39
-_
189
Tab
9
Spacebar
32
Dw Arrow
40
.>
190
Clear
12
Page Up
33
Insert
45
/?
191
Enter
13
Page Down
34
Delete
46
`~
192
Shift
16
End
35
Num Lock
144
[{
219
Control
17
Home
36
;:
186
╲┆
220
Alt
18
Left Arrow
37
=+
187
]}
221
Cape Lock
20
Up Arrow
38
,<
188
'"
222