DOM标准下
keyCode:默示按下按键的键盘码。(键盘码:Flash Player 给键盘上所有可侦测的键赋上一个随便率性数值的标识符。)
charCode:按下按键的Unicode字符。指导逻辑上对应于比来被按下或开释的键的字符的ASCⅡ字符
比如当按下“a键(重视是小写的字母)时,
在火狐中会获得
keydown:keyCode is 65 charCode is 0
keypress:keyCode is 0 charCode is 97
keyup: keyCode is 65 charCode is 0
在IE中会获得
keydown:keyCode is 65 charCode is undefined
keypress:keyCode is 97 charCode is undefined
keyup: keyCode is 65 charCode is undefined
而当按下shift键时,
在火狐中会获得
keydown:keyCode is 16 charCode is 0
keyup: keyCode is 16 charCode is 0
不会获得任何的charCode值,因为按shift并没输入任何的字符,并且也不会触发keypress事务
在IE中会获得
keydown:keyCode is 16 charCode is undefined
keyup: keyCode is 16 charCode is undefined
小结:在keydown事务里面,事务包含了keyCode – 用户按下的按键的物理编码。在keypress里,keyCode包含了字符编码,即默示字符的ASCII码。如许的情势实用于所有的浏览器 – 除了火狐,它在keypress事务中的keyCode返回值为0。
KeyPress 和KeyDown 、KeyPress之间的差别
(一)键事务按下列次序产生:
-
KeyDown
-
KeyPress
-
KeyUp
(二)KeyDown触发后,不必然触发KeyUp,当KeyDown 按下后,拖动鼠标,那么将不会触发KeyUp事务。
(三)定义
KeyDown:在控件有核心的景象下按下键时产生。
KeyPress:在控件有核心的景象下按下键时产生。(下面会说和KeyDown 的差别)
KeyUp:在控件有核心的景象下开释键时产生。
(四)KeyPress 和KeyDown 、KeyPress之间的差别
1.KeyPress首要用来捕获数字(重视:包含Shift+数字的符号)、字母(重视:包含大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开端键}和标的目标键外的ANSI字符 KeyDown 和KeyUp 凡是可以捕获键盘除了PrScrn所有按键(这里不评论辩论特别键盘的特别键)
2.KeyPress 只能捕获单个字符KeyDown 和KeyUp 可以捕获组合键。
3.KeyPress 可以捕获单个字符的大小写
4.KeyDown和KeyUp 对于单个字符捕获的KeyValue 都是一个值,也就是不区分单个字符的大小写。
5.KeyPress 不区分小键盘和主键盘的数字字符。KeyDown 和KeyUp 区分小键盘和主键盘的数字字符。
6.此中PrScrn 按键KeyPress、KeyDown和KeyUp 都不能捕获。