javascript有3種鍵盤事件:1、keydown事件,在鍵盤上按下某個鍵時觸發;2、keypress事件,按下某個鍵盤鍵並釋放時觸發;3、keyup事件,釋放某個鍵盤鍵時觸發。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
在 JavaScript 中,當使用者操作鍵盤時,會觸發鍵盤事件。
鍵盤事件主要包括下面3 種類型:
#keydown
:在鍵盤上按下某個鍵時觸發。如果按住某個按鍵,會不斷觸發該事件,但是 Opera 瀏覽器不支援這種連續操作。當事件處理函數傳回 false 時,會取消預設的動作(如輸入的鍵盤字符,在 IE 和 Safari 瀏覽器下也會禁止keypress 事件回應)。
keypress
:按下某個鍵盤鍵並釋放時觸發。如果按住某個鍵,會不斷觸發該事件。此事件處理函數傳回 false 時,會取消預設的動作(如輸入的鍵盤字元)。
keyup
:釋放某個鍵盤鍵時觸發。該事件僅在鬆開鍵盤時觸發一次,不是一個持續的響應狀態。
當取得使用者正按下鍵碼時,可以使用 keydown、keypress 和 keyup 事件來取得這些資訊。其中 keydown 和 keypress 事件基本上是同義事件,它們的表現也完全一致,不過有些瀏覽器不允許使用 keypress 事件取得按鍵資訊。所有元素都支援鍵盤事件,但鍵盤事件多被應用在表單輸入中。
範例
下方範例即時擷取鍵盤操作的各種細節,即鍵盤回應事件類型及對應的鍵值。
<textarea id="key"></textarea> <script> var key = document.getElementById("key"); key.onkeydown =f; //注册keydown事件处理函数 key.onkeyup = f; //注册keyup事件处理函数 key.onkeypress = f; //注册keypress事件处理函数 function f (e) { var e = e || window.event; //标准化事件处理 var s = e.type + " " + e.keyCode; //获取键盘事件类型和按下的值 key.value = s; } </script>
鍵盤事件屬性
鍵盤定義了許多屬性,如下表所示。利用這些屬性可以精確控制鍵盤操作。鍵盤事件屬性一般只在鍵盤相關事件發生時才會存在於事件物件中,但 ctrlKey 和 shiftKey 屬性除外,因為它們可以在水保事件中存在。例如,當按下 Ctrl 或Shift 鍵時按一下滑鼠操作。
屬性 | #說明 |
---|---|
keyCode | 此屬性包含鍵盤中對應鍵位的鍵值 |
charCode | #此屬性包含鍵盤中對應鍵位的Unicode 編碼,僅DOM 支援 |
target | 發生事件的節點(包含元素),僅DOM 支援 |
srcElement | 發生事件的元素,僅IE 支援 |
shiftKey | 是否按下Shift 鍵,如果按下返回true,否則為false |
以上是javascript有幾種鍵盤事件的詳細內容。更多資訊請關注PHP中文網其他相關文章!