keyCode 与 charCode

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之间的差别


(一)键事务按下列次序产生: 

  1. KeyDown

  2. KeyPress

  3. 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 都不能捕获。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值