此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

Element:keypress 事件

Deprecated

Avoid using this feature in new projects. This feature may be a candidate for removal from web standards or browsers.

keypress 事件在按下字母、数字、标点或符号键时触发,或者在按下 Enter 键时触发——包括与 Shift 键或 Ctrl 键组合按下 Enter 的情况。否则,单独按下 AltShiftCtrlMetaEscOption 等修饰键时,不会触发 keypress 事件。

警告:由于此事件已被弃用,你应该改用 beforeinputkeydown

此事件会冒泡。它可以到达 DocumentWindow

语法

addEventListener() 等方法中使用事件名称,或设置事件处理器属性。

js
addEventListener("keypress", (event) => { })

onkeypress = (event) => { }

事件类型

KeyboardEvent。继承自 UIEventEvent

Event UIEvent KeyboardEvent

示例

addEventListener keypress 示例

每当你在聚焦 <input> 元素后按下某个键时,此示例会记录 KeyboardEvent.code 的值。

要查看哪些键会触发 keypress 事件、哪些键不会,可以试着按下以下按键:

  • 字母键、数字键和标点键
  • 符号键,例如 $+=%+
  • 修饰键,例如 AltShiftCtrlMetaEscOption
  • Enter
  • ShiftCtrl 键组合的 Enter
  • ShiftCtrl 以外的修饰键组合的 Enter
html
<div>
  <label for="sample">聚焦输入框并输入一些内容:</label>
  <input type="text" name="text" id="sample" />
</div>
<p id="log"></p>
js
const log = document.getElementById("log");
const input = document.querySelector("input");

input.addEventListener("keypress", logKey);

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

等效的 onkeypress

js
input.onkeypress = logKey;

规范

规范
UI Events
# event-type-keypress
HTML
# handler-onkeypress

浏览器兼容性

参见