Element: keypress 事件

已棄用:此特性不再推薦。雖然某些瀏覽器可能仍然支援它,但它可能已經從相關的網路標準中刪除,可能正在刪除過程中,或者可能僅為相容性目的而保留。請避免使用它,如果可能,請更新現有程式碼;請參閱本頁底部的相容性表格以指導您的決策。請注意,此特性可能隨時停止工作。

當按下字母、數字、標點符號或符號鍵,或者按下 Enter 鍵時(包括 Enter 鍵與 Shift 鍵或 Ctrl 鍵組合按下時),會觸發 keypress 事件。但是,當單獨按下 AltShiftCtrlMetaEscOption 等修飾鍵時,不會觸發 keypress 事件。

警告: 由於此事件已棄用,您應該改用 beforeinputkeydown

此事件冒泡。它可以到達 DocumentWindow

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

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

onkeypress = (event) => { }

事件型別

一個 KeyboardEvent。繼承自 UIEventEvent

Event UIEvent KeyboardEvent

事件屬性

此介面還繼承其父級 UIEventEvent 的屬性。

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 事件,哪些鍵不會,請嘗試按下以下鍵:

  • 字母鍵、數字鍵和標點符號鍵
  • 符號鍵,例如 $+=%+
  • 修飾鍵,例如 AltShiftCtrlMetaEscOption
  • Enter
  • Enter 鍵與 Shift 鍵或 Ctrl 鍵組合按下
  • Enter 鍵與 Shift 鍵或 Ctrl 鍵之外的其他修飾鍵組合按下
html
<div>
  <label for="sample">Focus the input and type something:</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 事件
# 事件型別 keypress
HTML
# 處理程式 onkeypress

瀏覽器相容性

另見