Чтобы объяснить, где нет других ответов; проблема в том, что вы используете keypress
.
Возможно, событие просто имеет неправильное название, но keypress
определено, чтобы сработать, когда when an actual
character
is being inserted
. То есть текст.
Принимая во внимание, что вы хотите keydown
/ keyup
, который срабатывает всякий раз, когда (до или после, соответственно) the user depresses a
key
. То есть эти вещи на клавиатуре.
Разница появляется здесь, потому что esc
является управляющим символом (буквально «непечатный символ») и поэтому не пишет никакого текста, поэтому даже не запускает keypress
. >
enter
странно, потому что, даже если вы используете его в качестве управляющего символа (то есть для управления пользовательским интерфейсом), он все равно вставляет символ новой строки, который вызовет keypress
.
Источник: Причудливый режим