files/en-us/web/api/element/keypress_event/index.md
{{APIRef("UI Events")}}{{deprecated_header}}
The keypress event is fired when a letter, number, punctuation, or symbol key is pressed, or else when the <kbd>Enter</kbd> key is pressed — including when the <kbd>Enter</kbd> key is pressed in combination with the <kbd>Shift</kbd> key or <kbd>Ctrl</kbd> key. Otherwise, when a modifier key such as the <kbd>Alt</kbd>, <kbd>Shift</kbd>, <kbd>Ctrl</kbd>, <kbd>Meta</kbd>, <kbd>Esc</kbd>, or <kbd>Option</kbd> key is pressed in isolation, the keypress event is not fired.
[!WARNING] Since this event has been deprecated, you should use
beforeinputorkeydowninstead.
The event bubbles. It can reach {{domxref("Document")}} and {{domxref("Window")}}.
Use the event name in methods like {{domxref("EventTarget.addEventListener", "addEventListener()")}}, or set an event handler property.
addEventListener("keypress", (event) => { })
onkeypress = (event) => { }
A {{domxref("KeyboardEvent")}}. Inherits from {{domxref("UIEvent")}} and {{domxref("Event")}}.
{{InheritanceDiagram("KeyboardEvent")}}
This interface also inherits properties of its parents, {{domxref("UIEvent")}} and {{domxref("Event")}}.
{{domxref("KeyboardEvent.altKey")}} {{ReadOnlyInline}}
true if the <kbd>Alt</kbd> (<kbd>Option</kbd> or <kbd>⌥</kbd> on macOS) key was active when the key event was generated.{{domxref("KeyboardEvent.code")}} {{ReadOnlyInline}}
{{domxref("KeyboardEvent.ctrlKey")}} {{ReadOnlyInline}}
true if the <kbd>Ctrl</kbd> key was active when the key event was generated.{{domxref("KeyboardEvent.isComposing")}} {{ReadOnlyInline}}
true if the event is fired between after compositionstart and before compositionend.{{domxref("KeyboardEvent.key")}} {{ReadOnlyInline}}
{{domxref("KeyboardEvent.location")}} {{ReadOnlyInline}}
{{domxref("KeyboardEvent.metaKey")}} {{ReadOnlyInline}}
true if the <kbd>Meta</kbd> key (on Mac keyboards, the <kbd>⌘ Command</kbd> key; on Windows keyboards, the Windows key (<kbd>⊞</kbd>)) was active when the key event was generated.{{domxref("KeyboardEvent.repeat")}} {{ReadOnlyInline}}
true if the key is being held down such that it is automatically repeating.{{domxref("KeyboardEvent.shiftKey")}} {{ReadOnlyInline}}
true if the <kbd>Shift</kbd> key was active when the key event was generated.This example logs the {{domxref("KeyboardEvent.code")}} value whenever you press a key after focussing the {{htmlelement("input")}} element.
To see which keys cause a keypress event to fire, and which keys don't, try pressing the following:
<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}`;
}
{{EmbedLiveSample("addEventListener_keypress_example")}}
input.onkeypress = logKey;
{{Specifications}}
{{Compat}}