Поскольку событие устарело, вам следует избегать его использования в новом коде и планировать удаление его из старого кода.В спецификации W3C говорится об устаревших функциях:
Функции, отмеченные как устаревшие, включены в спецификацию в качестве ссылки на более старые реализации или спецификации, но являются НЕОБЯЗАТЕЛЬНЫМИ и не приветствуются.Только функции, которые имеют существующие или выполняемые замены, ДОЛЖНЫ быть исключены из данной спецификации.Реализации, которые еще не включают поддержку функции, МОГУТ реализовывать устаревшие функции по причинам обратной совместимости с существующим контентом, но авторы контента, создающие контент, НЕ ДОЛЖНЫ использовать устаревшие функции, если только нет другого способа решения варианта использования .Другие спецификации, которые ссылаются на эту спецификацию, НЕ ДОЛЖНЫ использовать устаревшие функции, но ДОЛЖНЫ указывать на замены, которым эта функция не рекомендуется.Ожидается, что функции, отмеченные как устаревшие в данной спецификации, будут исключены из будущих спецификаций.
В спецификации keypress event
говорится:
Предупреждение Тип события нажатия клавиши определен в данной спецификации для справки и полноты, но в этой спецификации не рекомендуется использовать этот тип события.В контексте редактирования авторы могут подписаться на событие beforeinput .
Вы также можете использовать события keydown
и / или keyup
,См. В чем разница между событиями keyup, keydown, keypress и input?
Однако, поскольку beforeinput
пока не имеет большой поддержки, если ни одно из этих других событий не подходит для вашего варианта использованияпока вам придется продолжать использовать keypress
(это исключение "если в спецификации нет другого способа решения варианта использования").