【问题标题】:keycode on keydown eventkeydown 事件的键码
【发布时间】:2010-12-11 12:17:51
【问题描述】:

我正在使用 keydown 事件

我在哪里获取密钥代码并将其转换为字符代码。

但是我遇到了一个问题,在键盘上按2 它给出50 和字符代码2

当我在小键盘中按2 时,它会给出键码98,所以当我转换字符码时a

【问题讨论】:

    标签: javascript events javascript-events


    【解决方案1】:

    这是因为您使用keyCode 成员,例如,小写字母“a”和大写字母“A”具有相同的 keyCode,因为是相同的键,但不同的 charCode 因为结果性格不一样。

    要获取 charCode,您应该使用keypress 事件,并获取event.charCode 成员(如果可用),否则,您将获得event.keyCode,对于 IE,keypress 事件具有正确的信息。

    看看下面的example

    document.onkeypress = function (e) { 
      e = e || window.event; 
      var charCode = e.charCode || e.keyCode, 
          character = String.fromCharCode(charCode); 
    
      alert(character);
    };
    

    【讨论】:

    • 使用此代码:当我输入“2”时,我得到 charCode 0;键码 50;字符 2;当我输入 Shift-2 时,我得到了相同的结果,但在我的文本框中出现了“@”。 onkeypress 事件似乎不知道您的 Shift 键是否按下....
    【解决方案2】:

    只需查看这些解决方案similar 即可满足您的要求

    对于键码参考use this

    键码取决于浏览器check it

    【讨论】:

      【解决方案3】:

      您将在keypress 事件中获得字符代码
      试试这个:http://www.w3.org/2002/09/tests/keys.html

      他们使用以下代码转换为字符:

      var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
      

      this 作为键码参考也可能会有所帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-06
        • 2013-04-27
        • 1970-01-01
        • 1970-01-01
        • 2015-09-05
        • 1970-01-01
        • 2011-05-16
        • 1970-01-01
        相关资源
        最近更新 更多