Почему нажатие клавиши не обрабатывает клавишу удаления и клавишу возврата - PullRequest
7 голосов
/ 12 октября 2010

Я не спрашиваю об этом, потому что мне нужен обходной путь.У меня есть один, который отлично работает, но я хочу знать, ПОЧЕМУ это не так.Это ошибка в javascript (или JQuery, потому что я использовал обработчик JQuery .keypress) или есть конкретная причина, по которой это так?

Ответы [ 2 ]

15 голосов
/ 12 октября 2010

Событие keypress предназначено для обработки символа, набранного пользователем, а не для обнаружения действий клавиатуры, а клавиши удаления и возврата не генерируют символы. Некоторые браузеры несколько размывают эту строку, но общий принцип заключается в том, что события keyup и keydown предназначены для обнаружения нажатия любой клавиши и говорят о том, какая это клавиша, в то время как keypress предназначена для обнаружения фактического набираемого символа.

2 голосов
/ 12 октября 2010

Короткий ответ: событие onkeypress не запускается для всех типов ключей во всех браузерах.Проверьте руководство для вашего браузера.

Почему?

Вероятно, не исчерпывающий ответ, но рассмотрим Shift, когда он понижается и когда поднимается относительно других клавиш, имеет значение.А разное оборудование клавиатуры имеет разные характеристики переключения клавиш, о которых вы, возможно, захотите узнать подробнее.

...