HTML OnKeypress 事件属性|用户按下键盘按键时触发
定义与用法
onkeypress 属性在按下按键时触发。
提示: 与 onkeypress 事件相关的事件触发顺序:
- onkeydown
- onkeypress
- onkeyup
提示: onkeypress 事件在所有浏览器中不能触发所有按键(例如:ALT, CTRL, SHIFT, ESC) 。如果只对用户是否已经按下一个按键检测, 可以使用 onkeydown 取代, onkeydown被所有按键触发。
提示: onkeypress 属性不能使用与以下元素: <base>, <bdo>, <br>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>, 或<title>。
语法格式
<element onkeypress=”script“>
示例代码
<script>
function displayResult() {
var x;
if (window.event) // IE8 及更早IE版本
{
x = event.keyCode;
} else if (event.which) // IE9/Firefox/Chrome/Opera/Safari
{
x = event.which;
}
keychar = String.fromCharCode(x);
alert("按键 " + keychar + " 被按下");
}
</script>
效果展示:
当用户在输入域按下按键时触发函数。 该功能提醒按下的键。
浏览器支持
事件属性 | |||||
---|---|---|---|---|---|
OnKeypress | Yes | Yes | Yes | Yes | Yes |
所有主流浏览器都支持 onkeypress 事件属性
属性值
值 | 描述 |
---|---|
script | 规定该onkeypress事件触发时执行的脚本。 |
OnKeydown和OnKeypress的区别
- 执行顺序不同:keydown < keypress < keyup ;
keypress
只能监听字母和数字,不能监听一些特殊按键(如Ctrl、Shift、箭头等);keydown
捕获的键值不区分字母大小写,而keypress
区分,例如,直接按下A
键,keydown
打印65,keypress
打印97,当Caps
打开时,keydown
和keypress
都是打印65;keydown
和keypress
如果不松开会一直触发,keyup
会直到松开才会触发;
提示:keypress
在谷歌和IE无法监听上下左右箭头,但是火狐不按常规出牌,可以监听。
补充:
onkeydown
是在用户按下任何键盘键(包括系统按钮,如箭头键和功能键)时发生;onkeyup
是在用户放开任何键盘键时发生;onkeypress
是在用户按下并放开任何字母数字键时发生。系统按钮(例如,箭头键和功能键)不会触发;