我正在使用keydown事件

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

但是我有一个问题,在键盘上按2,它给50和charcode作为2
当我在numpad中按2时,它会提供键码98,因此当我转换charcode a

最佳答案

之所以发生这种情况,是因为您使用的是keyCode成员,例如,小写字母'a'和大写字母'A'具有相同的keyCode,因为它们是相同的 key ,但是却具有不同的charCode,因为结果字符不同。

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

看一下下面的example:

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

  alert(character);
};

关于javascript - 按键事件的按键代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1648130/

10-08 20:32