Почему нажатие клавиши не обрабатывает клавишу удаления и клавишу возврата

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

Заранее спасибо.

2 ответа

Решение

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

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

Зачем?

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

Другие вопросы по тегам