• js中onkeyup、onkeydown与onkeypress的区别


    本文详细介绍了onkeyup、onkeydown与onkeypress三者在用法上的区别,通过实例了解三者在响应事件时的不同,有需要的朋友参考学习下。

    说明:
    onkeyup、onkeydown与onkeypress三者在事件的响应上各有不同:
    onkeydown 、onkeypress事件响应时,输入的字符并没有被系统接受,而响应onkeyup时,输入流已经被系统接受

    msdn上有三者的区别介绍,这里摘抄一下:
    名称 说明
    onkeypress
    这个事件在用户按下并放开任何字母数字键时发生。系统按钮(例如,箭头键和功能键)无法得到识别。

    onkeyup
    这个事件在用户放开任何先前按下的键盘键时发生。

    onkeydown
    这个事件在用户按下任何键盘键(包括系统按钮,如箭头键和功能键)时发生。

    例子:

    <html> 
    <script> 
    function checkForm(){ 
    if(event.keyCode ==13){ 
    event.keyCode =9; 
    } 
    } 
    </script> 
    <body> 
    <form name ="form1"> 
    <input type="text" name = "text1" onkeydown = "checkForm()"> 
    <input type="button" name = "button1" value="按钮"> 
    </form> 
    </body> 
    </html>
    

      


    当按下回车时,焦点从文本框移到按钮上。如果把它换成“onkeypress”,焦点不会转移,也不会失去。
    但是如果换成“onkeyup”,则失去焦点,页面重新载入。

    测试发现onkeydown 事件最先执行,其次是onkeypress,最后是onkeyup;onkeydown 和onkeypress会影响onkeyup的执行。
    三个事件同时存在时,都是alert的话,只会弹出2个alert,up事件的alert不会弹出。

    总结:
    onkeydown 、onkeypress事件响应时输入的字符并没有被系统接受,而响应onkeyup时,输入流已经被系统接受。
    由于onkeydown 比onkeypress先执行,onkeydown 触发时输入流正要进入系统,即onkeydown 事件一完,输入流就进入了系统,无法改变。
    所以通过onkeydown 事件可以改变用户是按了哪个键;
    而onkeypress事件则是在输入流进入系统后触发的,但输入流暂未被系统处理,此时已经不能改变输入流了;
    onkeyup则是输入流被系统处理后发生的。

    就是这些了,希望以上的介绍有助于大家理解onkeyup、onkeydown与onkeypress的区别,为以后灵活应用这几个事件函数带来帮助。


    本文原始链接:http://www.jbxue.com/article/12977.html

  • 相关阅读:
    SpringData概述
    运行javac 报告javac不是内部或外部命令,但是运行java、java-version正常
    Spring Data JPA
    spring-data-jpa 介绍 复杂查询,包括多表关联,分页,排序等
    Thymeleaf使用说明
    Specifications查询
    OA项目_环境搭建
    anu
    anu
    anu
  • 原文地址:https://www.cnblogs.com/feilign/p/4151741.html
Copyright © 2020-2023  润新知