Существует способ сделать это с помощью нажатия клавиши, если нажатие клавиши не работает из-за необходимости отмены события и т. Д. Используйте оператор if () с этим тестом:
parseInt(event.keyIdentifier.substring(2),16) > 47 && parseInt(event.keyIdentifier.substring(2),16) < 58
ИЛИ с событиями jQuery:
parseInt(event.originalEvent.keyIdentifier.substring(2),16) > 47 && parseInt(event.originalEvent.keyIdentifier.substring(2),16) < 58
В этих примерах предполагается, что «событие» является событием нажатия клавиши. keyIdentifier - шестнадцатеричное число, представляющее значение Unicode для соответствующего символа. Используя keyIdentifier, числа с цифровой клавиатуры / клавиатуры и цифры над клавиатурой QWERTY будут иметь одинаковые значения, 48 - 57 (U + 0030 - U + 0039), даже с событием keyDown.
Значения Unicode в браузерах будут выглядеть как U + 0030 или U + 002F. Разберите эту строку, чтобы получить только шестнадцатеричное значение, затем используйте parseInt () с основанием 16, чтобы преобразовать ее в base-10.