HTML OnKeypress 事件属性|用户按下键盘按键时触发

HTML事件属性


定义与用法

onkeypress 属性在按下按键时触发。

提示: 与 onkeypress 事件相关的事件触发顺序:

  1. onkeydown
  2. onkeypress
  3. 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>

效果展示:

当用户在输入域按下按键时触发函数。 该功能提醒按下的键。

亲自试试


浏览器支持

事件属性
OnKeypressYesYesYesYesYes

所有主流浏览器都支持 onkeypress 事件属性


属性值

描述
script规定该onkeypress事件触发时执行的脚本。

OnKeydown和OnKeypress的区别

  1. 执行顺序不同:keydown < keypress < keyup ;
  2. keypress只能监听字母和数字,不能监听一些特殊按键(如Ctrl、Shift、箭头等);
  3. keydown捕获的键值不区分字母大小写,而keypress区分,例如,直接按下A键,keydown打印65,keypress打印97,当Caps打开时,keydownkeypress都是打印65;
  4. keydownkeypress如果不松开会一直触发,keyup会直到松开才会触发;

提示:keypress在谷歌和IE无法监听上下左右箭头,但是火狐不按常规出牌,可以监听。

补充:

  • onkeydown是在用户按下任何键盘键(包括系统按钮,如箭头键和功能键)时发生;
  • onkeyup 是在用户放开任何键盘键时发生;
  • onkeypress是在用户按下并放开任何字母数字键时发生。系统按钮(例如,箭头键和功能键)不会触发;

HTML事件属性


相关