DOM標準下
keyCode:默示按下按鍵的鍵盤碼。(鍵盤碼:Flash Player 給鍵盤上所有可偵測的鍵賦上一個隨便率性數值的標識符。)
charCode:按下按鍵的Unicode字符。指導邏輯上對應於比來被按下或開釋的鍵的字符的ASCⅡ字符
比如當按下“a鍵(重視是小寫的字母)時,
在火狐中會獲得
keydown:keyCode is 65 charCode is 0
keypress:keyCode is 0 charCode is 97
keyup: keyCode is 65 charCode is 0
在IE中會獲得
keydown:keyCode is 65 charCode is undefined
keypress:keyCode is 97 charCode is undefined
keyup: keyCode is 65 charCode is undefined
而當按下shift鍵時,
在火狐中會獲得
keydown:keyCode is 16 charCode is 0
keyup: keyCode is 16 charCode is 0
不會獲得任何的charCode值,因爲按shift並沒輸入任何的字符,並且也不會觸發keypress事務
在IE中會獲得
keydown:keyCode is 16 charCode is undefined
keyup: keyCode is 16 charCode is undefined
小結:在keydown事務裏面,事務包含了keyCode – 用戶按下的按鍵的物理編碼。在keypress裏,keyCode包含了字符編碼,即默示字符的ASCII碼。如許的情勢實用於所有的瀏覽器 – 除了火狐,它在keypress事務中的keyCode返回值爲0。
KeyPress 和KeyDown 、KeyPress之間的差別
(一)鍵事務按下列次序產生:
-
KeyDown
-
KeyPress
-
KeyUp
(二)KeyDown觸發後,不必然觸發KeyUp,當KeyDown 按下後,拖動鼠標,那麼將不會觸發KeyUp事務。
(三)定義
KeyDown:在控件有核心的景象下按下鍵時產生。
KeyPress:在控件有核心的景象下按下鍵時產生。(下面會說和KeyDown 的差別)
KeyUp:在控件有核心的景象下開釋鍵時產生。
(四)KeyPress 和KeyDown 、KeyPress之間的差別
1.KeyPress首要用來捕獲數字(重視:包含Shift+數字的符號)、字母(重視:包含大小寫)、小鍵盤等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜單鍵}、{開端鍵}和標的目標鍵外的ANSI字符 KeyDown 和KeyUp 凡是可以捕獲鍵盤除了PrScrn所有按鍵(這裏不評論辯論特別鍵盤的特別鍵)
2.KeyPress 只能捕獲單個字符KeyDown 和KeyUp 可以捕獲組合鍵。
3.KeyPress 可以捕獲單個字符的大小寫
4.KeyDown和KeyUp 對於單個字符捕獲的KeyValue 都是一個值,也就是不區分單個字符的大小寫。
5.KeyPress 不區分小鍵盤和主鍵盤的數字字符。KeyDown 和KeyUp 區分小鍵盤和主鍵盤的數字字符。
6.此中PrScrn 按鍵KeyPress、KeyDown和KeyUp 都不能捕獲。