js键盘事件总结

一、相应事件

keydown:按下键盘上的任意键都可触发(字母不区分大小写,不区分数字是由主键盘区触发的还是小键盘区触发的),按着不放则重复触发

keypress:按下键盘上的数字和字符键时触发(字母区分大小写,不区分数字是由主键盘区触发的还是小键盘区触发的),按着不放则重复触发

keyup:释放按键时触发

总结:

1. 用keypress事件对象获取按键字符,用keydown事件获取功能字符(如Enter,Backspace等),keydown和keypress的区别请看演示

2. 事件顺序:keydown>keypress>keypup

3. 在文本框中捕获按键事件需要注意的地方:

1.keydown、keypress是在文本框内容变化前发生,keyup则是在文本框变化后发生。

 2.如果输入的是中文,keypress不会触发,改用dom3级的textInput事件(也就是必须通过addEventListener来监听)

二、如何获取按键值

在js获取键盘按下的键值有:event.keyCodeevent.charCodeevent.which

谷歌浏览器:event.keyCodeevent.charCodeevent.which都兼容。

火狐浏览器:event.keyCode部分键值有效,如上下左右键(37,38,39,40),enter键(13),PgUp(33),PgDn(34)等部分有效,对数字键,字母键无效。

event.which也是部分键值有效,如字母键,数字键,enter键,Backspace键等有效,对上下左右键,PgUp(33),PgDn(34)键无效。

event.charCode也是对部分键值有效,如字母键,数字键,,Backspace键等有效,对enter键,上下左右键,PgUp(33),PgDn(34)键无效。

ie浏览器:IE8及以下浏览器无event.charCode和event.whichevent.keyCode对大部分键值能获得,但是有少部分也不能获得

兼容性的写法如下:

var code=e.keyCode || e.which || e.charCode 

posted @ 2018-08-13 18:42  我是格鲁特  阅读(190)  评论(0编辑  收藏  举报