我們的志工尚未將本文翻譯為 正體中文 (繁體) 版本。加入我們,幫忙翻譯!
您也可以閱讀本文的 English (US) 版本。

Deprecated
This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

The keypress event is fired when a key that produces a character value is pressed down. Examples of keys that produce a character value are alphabetic, numeric, and punctuation keys. Examples of keys that don't produce a character value are modifier keys such as Alt, Shift, Ctrl, or Meta.

The keypress event has been deprecated. You may want to use beforeinput or keydown instead.

General info

Interface KeyboardEvent
Bubbles Yes
Cancelable Yes
Target Document, Element
Default Action Varies: keypress event; launch text composition system; blur and focus events; DOMActivate event; other event

Properties

Property Type Description
target Read only EventTarget The event target (the topmost target in the DOM tree).
type Read only DOMString The type of event.
bubbles Read only Boolean Whether the event normally bubbles or not.
cancelable Read only Boolean Whether the event is cancellable or not.
view Read only WindowProxy Document.defaultView (window of the document)
detail Read only long (float) 0.
target Read only EventTarget (DOM element) Focused element processing the key event, root element if no suitable input element focused.
char Read only DOMString (string) The character value of the key. If the key corresponds to a printable character, this value is a non-empty Unicode string containing that character. If the key doesn't have a printable representation, this is an empty string. See key names and char values for the detail.
Note: If the key is used as a macro that inserts multiple characters, this attribute's value is the entire string, not just the first character.
key Read only DOMString (string)

The key value of the key represented by the event. If the value has a printed representation, this attribute's value is the same as the char property. Otherwise, it's one of the key value strings specified in Key values. If the key can't be identified, its value is the string "Unidentified". See key names and char values for details.

code Read only DOMString (string) Holds a string that identifies the physical key being pressed. The value is not affected by the current keyboard layout or modifier state, so a particular key will always return the same value.
charCode Read only unsigned long (int) The Unicode reference number of the key; this attribute is used only by the keypress event. For keys whose char attribute contains multiple characters, this is the Unicode value of the first character in that attribute.
Warning: This attribute is deprecated; you should use char instead, if available.
keyCode Read only unsigned long (int) A system and implementation dependent numerical code identifying the unmodified value of the pressed key. This is usually the decimal ASCII (RFC 20) or Windows 1252 code corresponding to the key; see Virtual key codes for a list of common values. If the key can't be identified, this value is 0.
Warning: This attribute is deprecated; you should use key instead, if available.
which Read only unsigned long (int) A system and implementation dependent numeric code identifying the unmodified value of the pressed key; this is usually the same as keyCode.
Warning: This attribute is deprecated; you should use key instead, if available.
location Read only long (float) The location of the key on the device.
repeat Read only Boolean true if a key has been depressed long enough to trigger key repetition, otherwise false.
locale Read only DOMString The language code for the key event, if available; otherwise, the empty string.
ctrlKey Read only Boolean true if the control key was down when the event was fired. false otherwise.
shiftKey Read only Boolean true if the shift key was down when the event was fired. false otherwise.
altKey Read only Boolean true if the alt key was down when the event was fired. false otherwise.
metaKey Read only Boolean true if the meta key was down when the event was fired. false otherwise.

Example

This example logs the KeyboardEvent.code value whenever you press a key inside the <input> element.

HTML

<input placeholder="Click here, then press a key." size="40">
<p id="log"></p>

JavaScript

const input = document.querySelector('input');
const log = document.getElementById('log');

input.addEventListener('keypress', logKey);

function logKey(e) {
  log.textContent += ` ${e.code}`;
}

Result

Specification

DOM L3

Browser compatibility

  • Chrome does not fire the keypress event for known keyboard shortcuts (reference). Which keyboard shortcuts are known depends on the user's system. Use the keydown event to implement keyboard shortcuts.
  • As of Firefox 65, the keypress event is no longer fired for non-printable keys (bug 968056), except for the Enter key, and the Shift + Enter and Ctrl + Enter key combinations (these were kept for cross-browser compatibility purposes).

See also