内容
.on( "keyup" [, eventData ], handler )返回: jQuery
描述: 绑定一个事件处理程序到 "keypress" 事件。
此页面描述了 keypress
事件。对于已弃用的 .keypress()
方法,请参见 .keypress()
。
注意: 由于 keypress
事件不受任何官方规范的涵盖,因此在使用它时遇到的实际行为可能因浏览器、浏览器版本和平台而异。
当浏览器注册键盘输入时,会向元素发送 keypress
事件。这类似于 keydown
事件,不同之处在于修饰键和非打印键(如 Shift、Esc 和 delete)会触发 keydown
事件,但不会触发 keypress
事件。这两个事件之间的其他差异可能因平台和浏览器而异。
可以将 keypress
事件处理程序附加到任何元素,但该事件仅发送到具有焦点的元素。可获得焦点的元素可能因浏览器而异,但表单控件始终可以获得焦点,因此是此事件类型的合理候选者。
例如,考虑以下 HTML 代码:
1
2
3
4
5
6
7
8
|
|
事件处理程序可以绑定到输入字段。
1
2
3
|
|
现在,当插入点位于字段内时,按下键会显示日志。
`keypress` 处理程序被调用。
要手动触发事件,请使用 ` .trigger( "keypress" )`。
1
2
3
|
|
执行此代码后,单击 `Trigger the handler` div 也会记录消息。
如果需要捕获任何地方的按键(例如,在页面上实现全局快捷键),将此行为附加到 `document` 对象很有用。由于事件冒泡,所有按键都会向上冒泡到 DOM 的 `document` 对象,除非显式停止。
要确定输入了哪个字符,请检查传递给处理程序函数的 `event` 对象。虽然浏览器使用不同的属性来存储此信息,但 jQuery 会规范化 ` .which` 属性,因此您可以可靠地使用它来检索字符代码。
请注意,`keydown` 和 `keyup` 提供一个代码,指示按下了哪个键,而 `keypress` 指示输入了哪个字符。例如,小写字母 "a" 将由 `keydown` 和 `keyup` 报告为 65,但由 `keypress` 报告为 97。大写字母 "A" 由所有事件报告为 65。由于这种区别,在捕获特殊按键(如箭头键)时,` .keydown()` 或 ` .keyup()` 是更好的选择。
示例
在输入中按下键时显示事件对象。注意:此演示依赖于一个简单的 $.print() 插件(https://api.jqueryjs.cn/resources/events.js)来输出事件对象。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
|
演示
.trigger( "keyup" )返回值:jQuery
描述:在元素上触发 "keyup" 事件。
-
添加版本:1.0.trigger( "keyup" )
-
"keyup"类型: 字符串字符串
"keyup"
。
-
请参阅 .on( "keyup", ... )
的描述。