The onkeydown property of the GlobalEventHandlers mixin is an EventHandler that processes keydown events.
The keydown event fires when the user presses a keyboard key.
Syntax
target.onkeydown = functionRef;
Value
functionRef is a function name or a function expression. The function receives a KeyboardEvent object as its sole argument.
Example
This example logs the KeyboardEvent.code value whenever you press down a key inside the <input> element.
HTML
<input> <p id="log"></p>
JavaScript
const input = document.querySelector('input');
const log = document.getElementById('log');
input.onkeydown = logKey;
function logKey(e) {
log.textContent += ` ${e.code}`;
}
Result
Specifications
| Specification | Status | Comment |
|---|---|---|
| HTML Living Standard The definition of 'onkeydown' in that specification. |
Living Standard |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
onkeydown | Chrome Full support Yes | Edge Full support ≤18 | Firefox Full support Yes | IE ? | Opera ? | Safari ? | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support Yes | Opera Android ? | Safari iOS ? | Samsung Internet Android Full support Yes |
Legend
- Full support
- Full support
- Compatibility unknown
- Compatibility unknown
Compatibility notes
Since Firefox 65, the keyup and keydown events are now fired during IME composition, to improve cross-browser compatibility for CJKT users (bug 354358, also see keydown and keyup events are now fired during IME composition for more useful details). To ignore all keydown events that are part of composition, do something like this (229 is a special value set for a keyCode relating to an event that has been processed by an IME):
eventTarget.addEventListener("keydown", event => {
if (event.isComposing || event.keyCode === 229) {
return;
}
// do something
});
See also
keydownevent- Related event handlers
