Давайте сначала поймем различия между каждым событием
Keydown: происходит, когда клавиша нажимается, когда управление фокусируется
Keypress: происходит, когда клавиша нажимается, когда управление фокусируется
Keyup: происходит, когда ключ выпускается, когда управление фокусируется
1. Keypress в основном используется для получения символов ANSI, таких как буквы и цифры. Процессы событий Keydown и Keyup обычно могут захватывать все ключи на клавиатуре, кроме PRSCRN (здесь не обсуждаются специальные ключи для специальных клавиатур.
2. Keypress может захватить только один символ, в то время как Keydown и Keyup могут захватывать комбинацию клавиш.
3. Keypress не отображает физическое состояние клавиатуры (клавиша Shift), а только передает символ. KeyPress интерпретирует верхние и нижние формы корпуса каждого символа в виде разных кодов ключей, то есть как два разных символа. Keydown и Keyup не могут определить размер букв с ключами. Keydown и Keyup интерпретируют верхнюю и нижнюю форму каждого символа с двумя параметрами: KeyCode - Отображает физическую клавишу (возвращает A и A как один и тот же ключ) и Shift - указывает состояние клавиши Shift + и возвращает или один из их.
5. Keypress не различает числовые символы клавиатуры и первичную клавиатуру, в то время как Keydown и Keyup различают числовые символы клавиатуры и первичную клавиатуру.
6. События Keydown и Keyup происходят, когда (Keydown) или выпуск (Keyup) клавиша. Поскольку клавиши клавиатуры обычно сразу отталкиваются (это отличается от мыши), между каким из этих двух событий нет большой разницы. Более того, есть еще одна разница между UP и двумя другими: для оценки измененного состояния ключа необходимо использовать.
Мы можем использовать событие Keydown для блокировки пользовательского ввода, например, определенное поле ввода может вводить только номера
Ключевой код числовых клавиш на клавиатуре
[48-57] Номерные клавиши
[96-105] Числовая клавиатура
Также разрешите удаление ключей Backspace
Код выглядит следующим образом
Кода -копия выглядит следующим образом:
var input = document.getElementbyId ('number_ipt')
input.onkeydown = function (e) {
var KeyCode = e.keycode
if (! Isnumber (KeyCode)) вернуть false
}
// могут быть введены только числа
функция isNumber (KeyCode) {
// число
if (KeyCode> = 48 && KeyCode <= 57) вернуть true
// небольшая числовая клавиатура
if (KeyCode> = 96 && KeyCode <= 105) вернуть true
// Ключ обратного пространства
if (KeyCode == 8) вернуть true
вернуть ложь
}