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 編碼),常用鍵值對應如下:
在 Web 應用中,常常可以看到利用 onkeydown 事件的 event.keyCode/event.which 來獲取用戶的一些鍵盤操作,從而運行某些運用的例子。如在用戶登錄時,如果按下了大寫鎖定鍵(20),則加以提示大寫鎖定;在有翻頁的時候,如果用戶按下左右箭頭,觸發上下翻頁等。
獲得 Unicode 編碼值之後,如果需要得到實際對應的按鍵值,可以通過 Srting 對象的 fromCharCode 方法(String.fromCharCode())獲得。注意,對於字符獲得的始終是大寫字符,而對於其他一些功能按鍵,得到的字符可能不太易閱讀。