当前位置:Web前端 > javascript> 正文

onkeyup,onkeydown和onkeypress

时间:2014-11-29类别:Web前端

onkeyup,onkeydown和onkeypress

onkeyup,onkeydown和onkeypress

一、含义

onkeypress
这个事件在用户按下并放开任何字母数字键时发生。系统按钮(例如,箭头键和功能键)无法得到识别。
 
onkeyup
这个事件在用户放开任何先前按下的键盘键时发生。
 
onkeydown
这个事件在用户按下任何键盘键(包括系统按钮,如箭头键和功能键)时发生。 

 

二、onkeyup,onkeydown和onkeypress区别

 

1、三个事件执行顺序onkeydown -> onkeypress -> onkeyup

2、onkeypress仅能响应数字和字母键,不能对系统功能键进行捕获,而onkeydown和onkeyup事件均可对系统功能键进行响应。

3、onkeypress与另外onkeydown和onkeyup事件所使用的keycode不相同,而且onkeypress事件区分字母大小写但不区分主键盘数字键和小键盘数字键。

4、IE和火狐对这三个事件的处理不同

在IE中,键盘事件的event对象中包含一个keyCode属性,当为keydown和keyup 事件是,keycode属性表示你具体按下的键(也称为virtual keycode),当捕捉的是keypress事件时keyCode属性指的是你键入的字符(character code)  。

在firefox中情况有些不同,event对象包含一个keyCode属性和一个charCode属性,keydown和keyup事件的时候,keyCode表示的就是你具体按的键,charCode为0;当捕捉的是keypress事件时,keyCode为0,charCode指的是你按下的字符。

5、onkeypress 可被理解是被按着的那种状态是keydown 触发造成,keyup 就是弹起来了,释放了。点 onkeypress 时,其实输入的任务还没有完成,所以在此刻打印出来的输入数据时不包含你手上按下的这个键的,所以在这个过程里侦听输入框里的字符数是不可取的。因此做搜索建议suggest时应该选用onkeyup。



三、实例

 

  •  
  • HTML 代码   复制
  • 
    <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”,则失去焦点,页面重新载入。

     

     

    标签:
    上一篇下一篇

    猜您喜欢

    热门推荐