zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Protocol handler start failedCaused by: java.net.SocketException: Permission denied
    springboot无法获取证书内容
    IDEA中使用git合并分支的过程报错:cant checkout because of unmerged files
    IDEA中使用git报错Permission denied (publickey)
    linux常用的操作命令
    启动Tomcat报错:A child container failed during start
    linux下搭建redis内网端口映射工具-rinetd
    linux(centos)下安装supervisor进程管理工具
    SDBCI-WRCF2020-MI赛题成绩回顾
    Google搜索技巧
  • 原文地址:https://www.cnblogs.com/feilign/p/4151741.html
Copyright © 2011-2022 走看看