表單提交的時候大多數用戶都習慣用回車鍵來進行提交,頁面接受回車鍵的處理如下:
注意:
if(navigator.userAgent.indexOf("MSIE")>0) {
//IE document.onkeydown=function(){
if(13 == event.keyCode){
alert('browser is ie and enter key down');
}
} }else{
//非IE window.onkeydown=function(){
if(13 == event.keyCode){
alert('browser is not ie and enter key down');
}
} }
附常用功能鍵
值 描述
8 BACKSPACE 鍵
9 TAB 鍵
13 ENTER 鍵
16 SHIFT 鍵
17 CTRL 鍵
20 CAPS LOCK 鍵
27 ESC 鍵
32 SPACEBAR 鍵
33 PAGEUP 鍵
34 PAGEDOWN 鍵
35 END 鍵
42 PRINT SCREEN 鍵
46 DEL 鍵
144 NUM LOCK 鍵
判斷方法:
在填寫表單時,習慣性會按下回車鍵,這將導致表單提交,很不好,這里介紹一個方法截獲它。
其實很簡單,只要在想截獲的區域增加Onkeydown事件函數,並在執行函數中寫下如下語句:
if (window.event.keyCode==13) window.event.keyCode=0
這樣就取消回車鍵了
如果想模擬Tab鍵,只要寫成
if (window.event.keyCode==13) window.event.keyCode=9
就行了,它會跳到另一個元素上。
鍵盤事件:
名稱 說明
onkeypress
這個事件在用戶按下並放開任何字母數字鍵時發生。系統按鈕(例如,箭頭鍵和功能鍵)無法得到識別。
onkeyup
這個事件在用戶放開任何先前按下的鍵盤鍵時發生。
onkeydown
這個事件在用戶按下任何鍵盤鍵(包括系統按鈕,如箭頭鍵和功能鍵)時發生。
在使用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對主付鍵盤的數字鍵敏感。