код клавиши при событии - PullRequest
       5

код клавиши при событии

7 голосов
/ 30 октября 2009

Я использую событие keydown

Где я могу получить код ключа и преобразовать его в код char.

Но у меня возникла проблема, когда на клавиатуре есть нажатие 2, которое дает 50 и кодовый код как 2

Когда я нажимаю 2 на цифровой клавиатуре, он дает код 98, поэтому, когда я преобразую код a

Ответы [ 3 ]

12 голосов
/ 30 октября 2009

Это происходит потому, что вы используете элемент keyCode, например, строчные буквы 'a' и прописные буквы 'A' имеют одинаковый код ключа, потому что это один и тот же ключ, но другой символ charCode, потому что в результате символ другой.

Чтобы получить charCode, вы должны использовать событие keypress и получить член event.charCode, если он доступен, в противном случае вы получите event.keyCode, который для IE, в событии нажатия клавиши содержит правильную информацию.

Посмотрите на следующий пример :

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

  alert(character);
};
2 голосов
/ 30 октября 2009

просто посмотрите на это решение аналогично вашему требованию

и для справки по коду ключа используйте это

и код ключа зависит от браузера проверьте его

1 голос
/ 30 октября 2009

вы получите код символа в keypress событие
попробуйте это: http://www.w3.org/2002/09/tests/keys.html

Они используют следующий код для преобразования в символ:

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

это также может быть полезно в качестве справочного кода

...