Element: keypress 事件
已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。
当按下字母、数字、标点符号或符号键,或者按下 Enter 键时(包括 Enter 键与 Shift 键或 Ctrl 键组合按下时),会触发 keypress 事件。但是,当单独按下 Alt、Shift、Ctrl、Meta、Esc 或 Option 等修饰键时,不会触发 keypress 事件。
警告: 由于此事件已弃用,您应该改用 beforeinput 或 keydown。
语法
在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。
addEventListener("keypress", (event) => { })
onkeypress = (event) => { }
事件类型
一个 KeyboardEvent。继承自 UIEvent 和 Event。
事件属性
此接口还继承其父级 UIEvent 和 Event 的属性。
KeyboardEvent.altKey只读-
返回一个布尔值,如果生成按键事件时 Alt 键(macOS 上为 Option 或 ⌥ 键)处于活动状态,则返回
true。 KeyboardEvent.code只读-
返回一个字符串,其中包含事件所代表的物理键的代码值。
KeyboardEvent.ctrlKey只读-
返回一个布尔值,如果生成按键事件时 Ctrl 键处于活动状态,则返回
true。 KeyboardEvent.isComposing只读-
返回一个布尔值,如果事件在
compositionstart之后和compositionend之前触发,则返回true。 KeyboardEvent.key只读-
返回一个字符串,表示事件所代表的键的键值。
KeyboardEvent.location只读-
返回一个数字,表示键盘或其他输入设备上按键的位置。标识位置的常量列表显示在键盘位置中。
KeyboardEvent.metaKey只读-
返回一个布尔值,如果生成按键事件时 Meta 键(Mac 键盘上的 ⌘ Command 键;Windows 键盘上的 Windows 键 (⊞))处于活动状态,则返回
true。 KeyboardEvent.repeat只读-
返回一个布尔值,如果按键被按住并自动重复,则返回
true。 KeyboardEvent.shiftKey只读-
返回一个布尔值,如果生成按键事件时 Shift 键处于活动状态,则返回
true。
示例
addEventListener keypress 示例
此示例会在您聚焦 <input> 元素后按下任意键时,记录 KeyboardEvent.code 的值。
要查看哪些键会触发 keypress 事件,哪些键不会,请尝试按下以下键:
- 字母键、数字键和标点符号键
- 符号键,例如 $、+、=、% 和 + 键
- 修饰键,例如 Alt、Shift、Ctrl、Meta、Esc、Option 或 ⌘ 键
- Enter 键
- Enter 键与 Shift 键或 Ctrl 键组合按下
- Enter 键与 Shift 键或 Ctrl 键之外的其他修饰键组合按下
<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 事件 # 事件类型 keypress |
| HTML # 处理程序 onkeypress |
浏览器兼容性
加载中…