Есть лучший способ определить, какая клавиша была нажата в JavaScript / jQuery.
Во-первых, на общем примечании, событие нажатия клавиш более эффективно при получении всех нужных вам клавиш, поскольку нажатие клавиш не обязательно срабатывает при нажатии клавиш ENTER, ESC, TAB, клавиш со стрелками и т. Д.
Чтобы обнаружить цифры с цифровой клавиатуры ИЛИ строки цифр над клавиатурой QWERTY, используйте:
event.keyIdentifier
или, с событиями в JQuery:
event.originalEvent.keyIdentifier
«Событие» в этих примерах является объектом события keydown.
Это даст вам строковое значение в юникоде, представляющее фактический символ клавиши:
U + 002F или U + 0035, например. Затем проанализируйте это значение Unicode как шестнадцатеричное число:
parseInt(event.keyIdentifier.substring(2),16)
Использование 16 в качестве основы для parseInt преобразует шестнадцатеричное число в основание-10.
При использовании этого метода все цифровые клавиши будут иметь одинаковое значение независимо от того, исходят они с цифровой клавиатуры или с клавиатуры QWERTY. Числа 0 - 9 - 48 - 57. Таким образом, оператор if (), подобный этому, найдет все числа:
if (parseInt(event.keyIdentifier.substring(2),16) > 47 && parseInt(event.keyIdentifier.substring(2),16) < 58) {
doSomething();
}