內容
.on( "keyup" [, eventData ], handler )傳回:jQuery
說明:將事件處理常式繫結至「keypress」事件。
此頁面說明 keypress
事件。如需已棄用的 .keypress()
方法,請參閱 .keypress()
。
注意:由於 keypress
事件未涵蓋在任何官方規格中,因此使用時遇到的實際行為可能因瀏覽器、瀏覽器版本和平台而異。
當瀏覽器註冊鍵盤輸入時,keypress
事件會傳送給元素。這類似於 keydown
事件,但修改鍵和非列印鍵(例如 Shift、Esc 和 delete)會觸發 keydown
事件,但不會觸發 keypress
事件。這兩個事件之間的其他差異可能會因平台和瀏覽器而異。
keypress
事件處理常式可以附加到任何元素,但事件只會傳送給具有焦點的元素。可獲得焦點的元素會因瀏覽器而異,但表單控制項總是能獲得焦點,因此是此事件類型的合理候選對象。
例如,考慮 HTML
1
2
3
4
5
6
7
8
|
|
事件處理常式可以繫結到輸入欄位
1
2
3
|
|
現在,當插入點在欄位內時,按下鍵會顯示記錄
已呼叫 `keypress` 處理常式。
若要手動觸發事件,請使用 .trigger( "keypress" )
1
2
3
|
|
此程式碼執行後,按一下 觸發處理常式 div 也會記錄訊息。
如果需要捕捉任何地方的按鍵(例如,在頁面上實作全域快速鍵),將此行為附加到 document
物件會很有用。由於事件冒泡,除非明確停止,否則所有按鍵都會透過 DOM 傳遞到 document
物件。
若要判斷輸入哪個字元,請檢查傳遞給處理常式函數的 event
物件。雖然瀏覽器使用不同的屬性來儲存此資訊,但 jQuery 會正規化 .which
屬性,因此你可以可靠地使用它來擷取字元代碼。
請注意,keydown
和 keyup
提供一個表示按下哪個鍵的代碼,而 keypress
則表示輸入哪個字元。例如,小寫「a」會由 keydown
和 keyup
報告為 65,但由 keypress
報告為 97。大寫「A」由所有事件報告為 65。由於有此區別,在捕捉箭頭鍵等特殊按鍵時,.keydown()
或 .keyup()
是更好的選擇。
範例
在輸入中按下按鍵時顯示事件物件。注意:此範例依賴於簡單的 $.print() 外掛程式 (https://jquery-api.dev.org.tw/resources/events.js) 來輸出事件物件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
|
範例
.trigger( "keyup" )傳回:jQuery
說明:在元素上觸發「keyup」事件。
-
新增版本:1.0.trigger( "keyup" )
-
"keyup"類型:字串字串
"keyup"
。
-
請參閱 .on( "keyup", ... )
的說明。