onkeyup,onkeydown和onkeypress

来源:互联网 发布:阿里云 飞天八部 加班 编辑:程序博客网 时间:2024/05/21 11:00

如下一段代码:

<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”,则失去焦点,页面重新载入。msdn上有三者的区别:

 

名称说明

onkeypress

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

onkeyup

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

onkeydown

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

 

(但是试验中,onkeypress好像对箭头和功能键都能识别,奇怪!)。对于onkeyup为什么会重新刷新页面,原因不详。猜想是不是浏览器对于onkeyup有默认的执行事件,其默认的执行事件就是重新载入页面。有待以后了解!还有一点要注意,就是键盘上的同一个值,可能对应的onkeypress和onkeydown(onkeyup一般和onkeydown一样)不同,比如小键盘上的“1”,对应的onkeypress的值为49,而onkeydown和onkeyup则都是97!msdn上有个例子,可以很好的查看不同的键盘值对应的不同事件值。url:http://msdn.microsoft.com/library/en-us/dnacc/html/Example3_Calculator.asp

原创粉丝点击