zoukankan      html  css  js  c++  java
  • javascript中keyCode与charCode属性

    好记性不如烂笔头啊,最近总是忘记这两个属性的区别。想了想,从别人博客上转一遍过来吧,时常看下

    键盘事件拥有两个属性,keyCode和CharCode,他们之间有一些不一样之处。keyCode表示用户按下键的实际的编码,而charCode是指用户按下字符的编码。
    IE下
    keyCode:对于keypress事件,表示按下按键的Unicode字符;对于keydown/keyup 事件,表示按下按键的数字代码。无charCode属性。
    DOM标准下
    keyCode:表示按下按键的数字代码。
    charCode:按下按键的Unicode字符。

    当我按下“a”键(注意是小写的字母)时,
    在火狐中会得到
    keydown:keyCode is 65  charCode is 0
    keypress:keyCode is 0   charCode is 97
    keyup:  keyCode is 65  charCode is 0
    在谷歌中会得到
    keydown:keyCode is 65  charCode is 0
    keypress:keyCode is 97  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事件。
    在谷歌中会得到
    keydown:keyCode is 16  charCode is 0
    keyup:  keyCode is 16   charCode is 0
    在IE中会得到
    keydown:keyCode is 16  charCode is undefined
    keyup:  keyCode is 16   charCode is undefined
    小结:
    1.在keydown事件里面,事件包含了keyCode – 用户按下的按键的物理编码。
    2.在keypress里,keyCode包含了字符编码,即表示字符的ASCII码。这样的形式适用于所有的浏览器 – 除了火狐,它在keypress事件中的keyCode返回值为0。
    如果你想获取用户实际敲击的按钮,用keydown事件来获取事件对象,并获取keyCode值,这在所有浏览器都行的通。另一方面,如果你想获取用户输入的字符,那么就使用keypress来获取,然后获取charCode(火狐和safari)或是keyCode(其他浏览器)。


    原文转自:http://blog.sina.com.cn/s/blog_65c2ec5e0101blj6.html

  • 相关阅读:
    使用POI读取excel文件内容
    有序链表
    jQuery Validate验证框架详解
    怎样在VS2010中打开VS2012的项目
    在Win8.1系统下如何安装运行SQL Server 2005
    SQL2005 2008配置错误,无法识别的配置节 system.serviceModel machine.config配置文件有问题
    深入浅出学Spring Data JPA
    Java 学习摘要
    JFinal
    spring 4 + jpa(hibernate 3/4) + spring mvc 多数据源配置
  • 原文地址:https://www.cnblogs.com/qingguo/p/5686308.html
Copyright © 2011-2022 走看看