js鍵盤相關知識總結
阿新 • • 發佈:2018-08-13
-c 單個 har 觸發 區分 var 鍵盤 知識總結 del 、 ,
一、相應事件
keydown:按下鍵盤上的任意鍵都可觸發,按著不放則重復觸發
keypress:按下鍵盤上的字符鍵時觸發,按著不放則重復觸發
keyup:釋放按鍵時觸發
事件順序:keydown>keypress>keypup
在文本框中捕獲按鍵事件需要註意的地方:
1.keydown、keypress是在文本框內容變化前發生,keyup則是在文本框變化後發生。
2.如果輸入的是中文,keypress不會觸發
二、如何獲取按鍵值
在js獲取鍵盤按下的鍵值有:event.keyCode
、event.charCode
和event.which
。
谷歌瀏覽器:對event.keyCode
event.charCode
和event.which
都兼容。
火狐瀏覽器:對event.keyCode
部分鍵值有效,如上下左右鍵(37,38,39,40),enter鍵(13),PgUp(33),PgDn(34)等部分有效,對數字鍵,字母鍵無效。
event.which
也是部分鍵值有效,如字母鍵,數字鍵,enter鍵,Backspace鍵等有效,對上下左右鍵,PgUp(33),PgDn(34)鍵無效。
event.charCode
也是對部分鍵值有效,如字母鍵,數字鍵,,Backspace鍵等有效,對enter鍵,上下左右鍵,PgUp(33),PgDn(34)鍵無效。
ie瀏覽器:中,IE8及以下瀏覽器無event.charCode和event.which
event.keyCode
對大部分鍵值能獲得,但是有少部分也不能獲得
兼容性的寫法如下:
var code=e.keyCode || e.which || e.charCode
三、該用什麽事件來獲取按鍵值
- KeyDown觸發後,不一定觸發KeyUp,當KeyDown 按下後,拖動鼠標,那麽將不會觸發KeyUp事件。
- KeyPress主要用來捕獲數字(註意:包括Shift+數字的符號)、字母(註意:包括大小寫)、小鍵盤等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜單鍵}、{開始鍵}和方向鍵外的ANSI字符
- KeyDown 和KeyUp 通常可以捕獲鍵盤除了PrScrn所有按鍵(這裏不討論特殊鍵盤的特殊鍵)
- KeyPress 只能捕獲單個字符,KeyDown 和KeyUp 可以捕獲組合鍵。
- KeyPress 可以捕獲單個字符的大小寫,KeyDown和KeyUp 不能。
- KeyPress 不區分小鍵盤和主鍵盤的數字字符,KeyDown 和KeyUp 區分。
總結:用keypress事件對象獲取按鍵字符,用keydown事件獲取功能字符(如Enter,Backspace等)
js鍵盤相關知識總結