Читали ли вы jQuery doco о том, как работают события keyup
и keydown
? Предполагается, что они возвращают код ключа (а не код символа), не обращая внимания на то, был ли сдвиг в то время был вниз keyup
позволяет различать разные клавиши, связанные с одним и тем же символом, поэтому вы можете определить, была ли введена цифра с цифровой клавиатуры или нет.
Требуемое событие - нажатие клавиши , , которое возвращает код символа, который различает верхний и нижний регистр. Хотя я и сказал, что я не уверен, как это работает для иностранных языков, и в любом случае весь подход не позволяет пользователю вводить другой текст путем вставки из буфера обмена, так что это еще кое-что, что вам нужно учитывать.
(Кстати, jQuery нормализует свойство event.which
, поэтому вам не нужно сначала проверять event.keyCode
.)