keydown事件的keycode

时间:2009-10-30 05:18:20

标签: javascript events javascript-events

我正在使用keydown事件

我获取密码并将其转换为charcode。

但我遇到一个问题,在键盘上按2它会50而charcode为2

当我在numpad中按2时,它会给出密钥代码98,因此当我转换charcode a

3 个答案:

答案 0 :(得分:12)

这种情况正在发生,因为您正在使用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);
};

答案 1 :(得分:2)

只需根据您的要求查看这些解决方案similar

和密码参考use this

和keycode取决于浏览器check it

答案 2 :(得分:1)

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

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

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

this也可能有用,因为代码参考