KeyDown событие происходит при нажатии на клавишу, а затем сразу же событие нажатия клавиши. Затем событие keyup генерируется при отпускании ключа.
Чтобы понять разницу между KeyDown и нажатием клавиши , полезно различать символы и ключи . Ключ является физической кнопкой на клавиатуре компьютера. Символ является символом набран нажатием кнопки. На клавиатуре США нажатие 4клавиши при удерживании Shiftклавиши обычно приводит к появлению символа «знак доллара». Это не обязательно так на каждой клавиатуре в мире. Теоретически события keydown и keyup представляют собой нажатие или отпускание клавиш, а нажатие клавишисобытие представляет вводимый символ. На практике это не всегда так, как это реализовано.
Некоторое время некоторые браузеры запускали дополнительное событие, называемое textInput , сразу после нажатия клавиши . Ранние версии стандарта DOM 3 задумывали это как замену события нажатия клавиши , но позже это понятие было отменено. Webkit поддерживал это между версиями 525 и 533, и мне сказали, что IE поддерживал это, но я никогда не обнаруживал этого, возможно, потому что Webkit требовал, чтобы он назывался textInput, в то время как IE называл его textinput .
Существует также событие под названием input , поддерживаемое всеми браузерами, которое вызывается сразу после внесения изменений в текстовое поле или поле ввода. Обычно срабатывает нажатие клавиши, затем в текстовой области появляется напечатанный символ, а затем срабатывает ввод. Вход событие фактически не дает никакой информации о том, что было напечатан ключ - вы должны проверить текстовое поле , чтобы понять это , что изменилось - так что мы на самом деле не считаем это ключевым событием и действительно не документировать его здесь , Хотя изначально он был определен только для текстовых областей и полей ввода, я полагаю, что есть некоторое движение к его обобщению для стрельбы и по другим типам объектов.