Элемент: событие keypress
Устаревший: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её поддерживать, она может быть уже удалена из соответствующих веб-стандартов, может быть в процессе удаления или оставаться только для совместимости. Избегайте её использования и обновляйте существующий код, если это возможно; см. таблицу совместимости внизу этой страницы, чтобы принять решение. Помните, что эта функция может перестать работать в любое время.
Событие keypress срабатывает при нажатии клавиши, которая генерирует символ.
Примеры клавиш, генерирующих символ, — это буквы, цифры и знаки препинания. Примеры клавиш, не генерирующих символ, — это модификационные клавиши, такие как Alt, Shift, Ctrl или Meta.
Предупреждение: Поскольку это событие устарело, следует использовать beforeinput или keydown вместо него.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или задайте обработчик события.
addEventListener("keypress", (event) => {});
onkeypress = (event) => {};
Тип события
Объект KeyboardEvent. Наследуется от UIEvent и Event.
Свойства события
Этот интерфейс также наследует свойства своих родительских интерфейсов, UIEvent и Event.
-
KeyboardEvent.altKeyТолько для чтения -
Возвращает логическое значение, равное
true, если клавиша Alt (Option или ⌥ на macOS) была активна при возникновении события нажатия клавиши. -
KeyboardEvent.codeТолько для чтения -
Возвращает строку с кодовым значением физической клавиши, представленной событием.
-
KeyboardEvent.ctrlKeyТолько для чтения -
Возвращает логическое значение, равное
true, если клавиша Ctrl была активна при возникновении события нажатия клавиши. -
KeyboardEvent.isComposingТолько для чтения -
Возвращает логическое значение, равное
true, если событие срабатывает междуcompositionstartиcompositionend. -
KeyboardEvent.keyТолько для чтения -
Возвращает строку, представляющую значение клавиши, представленной событием.
-
KeyboardEvent.locationТолько для чтения -
Возвращает число, представляющее расположение клавиши на клавиатуре или другом устройстве ввода. Список констант, определяющих расположения, показан в разделе Расположения клавиш.
-
KeyboardEvent.metaKeyТолько для чтения -
Возвращает логическое значение, равное
true, если клавиша Meta (на клавиатурах Mac — клавиша ⌘ Command, на клавиатурах Windows — клавиша Windows (⊞)) была активна при возникновении события нажатия клавиши. -
KeyboardEvent.repeatТолько для чтения -
Возвращает логическое значение, равное
true, если клавиша удерживается и автоматически повторяется. -
KeyboardEvent.shiftKeyТолько для чтения -
Возвращает логическое значение, равное
true, если клавиша Shift была активна при возникновении события нажатия клавиши.
Примеры
Пример addEventListener keypress
В этом примере регистрируется значение KeyboardEvent.code каждый раз, когда вы нажимаете клавишу после фокусировки элемента <input>.
<div> <label for="sample">Focus the input and type something:</label> <input type="text" name="text" id="sample" /> </div> <p id="log"></p>
const log = document.getElementById("log");
const input = document.querySelector("input");
input.addEventListener("keypress", logKey);
function logKey(e) {
log.textContent += ` ${e.code}`;
}
Эквивалент onkeypress
input.onkeypress = logKey;
Спецификации
| Спецификация |
|---|
| UI Events # event-type-keypress |
| HTML # handler-onkeypress |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
keypress_event |
1Chrome не генерирует событиеkeypress для известных комбинаций клавиш. Какие комбинации клавиш известны, зависит от системы пользователя. Используйте событие keydown для реализации комбинаций клавиш. |
12 | 6Начиная с Firefox 65, событиеkeypress больше не генерируется для непечатаемых клавиш, за исключением клавиши Enter, а также комбинаций Shift + Enter и Ctrl + Enter (они сохранились для обеспечения кроссбраузерной совместимости). |
≤12.1Opera не генерирует событиеkeypress для известных комбинаций клавиш. Какие комбинации клавиш известны, зависит от системы пользователя. Используйте событие keydown для реализации комбинаций клавиш. |
1.3 | 18Chrome Android не генерирует событиеkeypress для известных комбинаций клавиш. Какие комбинации клавиш известны, зависит от системы пользователя. Используйте событие keydown для реализации комбинаций клавиш. |
6Начиная с Firefox для Android 65, событиеkeypress больше не генерируется для непечатаемых клавиш, за исключением клавиши Enter, а также комбинаций Shift + Enter и Ctrl + Enter (они сохранились для обеспечения кроссбраузерной совместимости). |
≤12.1Opera не генерирует событиеkeypress для известных комбинаций клавиш. Какие комбинации клавиш известны, зависит от системы пользователя. Используйте событие keydown для реализации комбинаций клавиш. |
1 | 1.0Samsung Internet не генерирует событиеkeypress для известных комбинаций клавиш. Какие комбинации клавиш известны, зависит от системы пользователя. Используйте событие keydown для реализации комбинаций клавиш. |
1Chrome не генерирует событиеkeypress для известных комбинаций клавиш. Какие комбинации клавиш известны, зависит от системы пользователя. Используйте событие keydown для реализации комбинаций клавиш. |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Element/keypress_event