JavaScript onkeydown 事件
使用者按下一個鍵盤按鍵時會觸發 onkeydown 事件。與 onkeypress 事件不同的是,onkeydown 事件是響應任意鍵按下的處理(包括功能鍵),onkeypress 事件只響應字元鍵按下後的處理。
提示
Internet Explorer/Chrome 瀏覽器使用 event.keyCode 取回被按下的字元,而 Netscape/Firefox/Opera 等瀏覽器使用 event.which。
onkeydown 擷取使用者按下的鍵
下面是一個利用 onkeydown 事件擷取使用者按下鍵盤按鍵資訊的例子:
複製代碼 代碼如下:
<html>
<body>
<script type="text/javascript">
function noNumbers(e)
{
var keynum;
var keychar;
keynum = window.event ? e.keyCode : e.which;
keychar = String.fromCharCode(keynum);
alert(keynum+':'+keychar);
}
</script>
<input type="text" onkeydown="return noNumbers(event)" />
</body>
</html>
如上面例子所示,event.keyCode/event.which 得到的是一個按鍵對應的數字值(Unicode 編碼),常用索引值對應如下:
| 數字值 |
實際索引值 |
| 48到57 |
0到9 |
| 65到90 |
a到z(A到Z) |
| 112到135 |
F1到F24 |
| 8 |
BackSpace(退格) |
| 9 |
Tab |
| 13 |
Enter(斷行符號) |
| 20 |
Caps_Lock(大寫鎖定) |
| 32 |
Space(空格鍵) |
| 37 |
Left(左箭頭) |
| 38 |
Up(上箭頭) |
| 39 |
Right(右箭頭) |
| 40 |
Down(下箭頭) |
在 Web 應用程式中,常常可以看到利用 onkeydown 事件的 event.keyCode/event.which 來擷取使用者的一些鍵盤操作,從而運行某些運用的例子。如在使用者登入時,如果按下了大寫鎖定鍵(20),則加以提示大寫鎖定;在有翻頁的時候,如果使用者按下左右箭頭,觸發上下翻頁等。
獲得 Unicode 編碼值之後,如果需要得到實際對應的按索引值,可以通過 Srting 對象的 fromCharCode 方法(String.fromCharCode())獲得。注意,對於字元獲得的始終是大寫字元,而對於其他一些功能按鍵,得到的字元可能不太易閱讀。
PS:這裡再為大家推薦一款關於JS事件的線上查詢工具,歸納總結了JS常用的事件類型與函數功能:
javascript事件與功能說明大全:
http://tools.jb51.net/table/javascript_event