码迷,mamicode.com
首页 > 其他好文 > 详细

键盘事件之keydown keypress keyup区别

时间:2016-04-15 18:03:58      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

经过测试,显然事件执行的顺序是: keydown->keypress->keyup.

但是连续按一个按键的话,会一直触发:keydown keypress。直到你提起按键,会触发keyup。

但是对一些特殊的键子,各个事件在浏览器里能触发的事件并不一样。

有几点需要注意:

1.像keypress对: shift ctrl 上下键等非字符的输入不会触发。

2.在enter键遇到form表单的时候,当只有一个文本框里并且输入ENTER的时候,form表单会自动提交,这时候只会触发keydown,keypress两个事件。

3.当监听keydown事件,enter键遇到form表单并且target=‘_blank‘的时候有些浏览器会拦截页面,原因是:

  因为keydown在按下回车的时候已经触发,但这时程序还在处理逻辑,在处理完提交的时候,浏览器会认为是程序打开的新页面,不认为是用户行为打开的,导致浏览器拦截新页面的打开,解决办法是:把监听keydown换成监听keypress。

 

总结:

keydown 从表现上来看是按下任意键。按下的字符,如果是文本框的话还没有显示到文本框之前就产生的事件。keydown只要按下一个键就会触发。

keypress 就是在松开按键时发生,此时字符已经输入到文本框。要按下并松开并有输入性字符的按键才会触发。

   

 

键盘事件之keydown keypress keyup区别

标签:

原文地址:http://www.cnblogs.com/freefish12/p/5396062.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!