使用JavaScript處理鍵盤按鍵事件,例如回車、tab、ESC等,原理很簡單,處理window.event.keyCode對象就好了。
window.event.keyCode 獲取當前按鍵的ASCII碼。
之前在網上看書的時候,老是但願能有一個功能,當按"->"方向鍵時,能夠自動跳轉到下一章,今天終於實現了這個功能,順便也掌握了js中判斷鍵盤按鍵的方法.權以此文志之!
判斷方法:
在填寫表單時,習慣性會按下回車鍵,這將致使表單提交,很很差,這裏介紹一個方法截獲它。
其實很簡單,只要在想截獲的區域增長Onkeydown事件函數,並在執行函數中寫下以下語句:
if (window.event.keyCode==13) window.event.keyCode=0
這樣就取消回車鍵了
若是想模擬Tab鍵,只要寫成
if (window.event.keyCode==13) window.event.keyCode=9
就好了,它會跳到另外一個元素上。
表 3. DHTML 鍵盤事件html
名稱 說明
onkeypress
這個事件在用戶按下並放開任何字母數字鍵時發生。系統按鈕(例如,箭頭鍵和功能鍵)沒法獲得識別。函數
onkeyup
這個事件在用戶放開任何先前按下的鍵盤鍵時發生。htm
onkeydown
這個事件在用戶按下任何鍵盤鍵(包括系統按鈕,如箭頭鍵和功能鍵)時發生。
對象
示例:
function document.onkeydown()
{
if ( event.keyCode=='39' ) //->右箭頭
{
window.open("http://www.163.com");
}
}事件
function document.onkeypress()
{
if ( event.keyCode=='43' )
{
alert( '你輸入了鍵盤的 「 + 」 鍵');
}
}
在使用JavaScript作WEB鍵盤事件偵聽捕獲時,主要採用onkeypress、onkeydown、onkeyup三個事件進行出來。該三個事件的執行順序以下:onkeydown -> onkeypress ->onkeyup。在通常狀況下,採用三種鍵盤事件都可對鍵盤輸入進行有效的響應。當在實際使用中,會發現這幾者有些不一樣的差異。
onkeypress事件不能對系統功能鍵(例如:後退、刪除等,其中對中文輸入法不能有效響應)進行正常的響應,onkeydown和onkeyup都可以對系統功能鍵進行有效的攔截,但事件截獲的位置不一樣,能夠根據具體的狀況選擇不一樣的鍵盤事件。
因爲onkeypress不能對系統功能鍵進行捕獲,致使window.event對象的keyCode屬性和onkeydown,onkeyup鍵盤事件中獲取的keyCode屬性不一樣,主要表如今onkeypress事件的keyCode對字母的大小寫敏感,而onkeydown、onkeyup事件不敏感;onkeypress事件的keyCode沒法區分主鍵盤上的數字鍵和付鍵盤數字鍵的,而onkeydown、onkeyup的keyCode對主付鍵盤的數字鍵敏感。
本文來源於 龍捲風資訊網 http://www.ljf.cn/ ;原文地址:http://www.ljf.cn/2010/2/Item251566.htmlip