简记 keyCode 与 charCode

keyCode :

IE 与  w3c兼容浏览器 keydown ,keyup 时 event 的 keyCode 为实际按键的值 。

例如:

shift + a ==  16 + 65

 

charCode :

 w3c兼容浏览器 在 keypress(shift等非实际值键忽略) 时 event 存在 charCode 属性为对应字符值,keyCode 统一为0。

  IE 只有 keyCode, 则在 keypress(shift等非实际值键忽略) 时仍然采用 keyCode ,不过此时为对应字符值,没有charCode 属性。

 例如:

shift + a : {

ie: keyCode :97 ,charCode:undefined

firefox : keyCode:0 ,charCode:97

}



所以存在下列代码:

 

document.getElementById("xx").οnkeypress=function(event){
var evt = event || window.event;
var code=evt.charCode || evt.keyCode;
var char_=String.fromCharCode(code);//字符得到
};

 

 

ps:

注意不能直接 code 与 字符比较 ,比如过滤某些字符

 

不能够  code > 'a' ,而应该 char_ > 'a' ,code 做为数字和字符串比较,会强制字符串转化为数字进行比较 ,而'a' ,parse数字以后为 NaN ,则 code > 'a' ,code <'a' ,code =='a' 都为 false。

 

参考:


ppk about keys

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值