js中獲取鍵盤按下鍵值event.keyCode、event.charCode和event.which的兼容性詳解
前言
在閱讀本文前,相信大家應(yīng)該都有所了解,在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)等部分有效,對數(shù)字鍵,字母鍵無效。
event.which
也是部分鍵值有效,如字母鍵,數(shù)字鍵,enter鍵,Backspace鍵等有效,對上下左右鍵,PgUp(33),PgDn(34)鍵無效。
event.charCode
也是對部分鍵值有效,如字母鍵,數(shù)字鍵,,Backspace鍵等有效,對enter鍵,上下左右鍵,PgUp(33),PgDn(34)鍵無效。
ie瀏覽器:中,IE8及以下瀏覽器對event.charCode
無效,event.keyCode
和event.which
對大部分鍵值能獲得,但是有少部分也不能獲得
網(wǎng)絡(luò)查看說event.which
將 event.keyCode
和 event.charCode
標準化了。但實際還是有區(qū)別的。
所以一般都這樣寫兼容:
e.keyCode<span class="hljs-params">||</span>e.which<span class="hljs-params">||</span>e.charCode;
jquery API地址:http://api.jquery.com/event.which/
如下例子介紹Query限制文本框只能輸入數(shù)字和小數(shù)點的方法
$(function(){ /*JQuery 限制文本框只能輸入數(shù)字*/ $(".NumText").keyup(function(){ $(this).val($(this).val().replace(/[^0-9]/g,'')); }).bind("paste",function(){ //CTR+V事件處理 $(this).val($(this).val().replace(/[^0-9]/g,'')); }).css("ime-mode", "disabled"); //CSS設(shè)置輸入法不可用 /*JQuery 限制文本框只能輸入數(shù)字和小數(shù)點*/ $(".NumDecText").keyup(function(){ $(this).val($(this).val().replace(/[^0-9.]/g,'')); }).bind("paste",function(){ //CTR+V事件處理 $(this).val($(this).val().replace(/[^0-9.]/g,'')); }).css("ime-mode", "disabled"); //CSS設(shè)置輸入法不可用 });
Keycode對照表如下:
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
KnockoutJS 3.X API 第四章之數(shù)據(jù)控制流component綁定
這篇文章主要介紹了KnockoutJS 3.X API 第四章之數(shù)據(jù)控制流component綁定的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-10-10JavaScript基于自定義函數(shù)判斷變量類型的實現(xiàn)方法
這篇文章主要介紹了JavaScript基于自定義函數(shù)判斷變量類型的實現(xiàn)方法,結(jié)合實例形式分析了javascript判斷變量類型的自定義函數(shù)定義與使用方法,并針對不同瀏覽器給出了相關(guān)的分析與說明,需要的朋友可以參考下2016-11-11JavaScript數(shù)組去重的五種方法及其他細節(jié)和拓展
JavaScript數(shù)組去重這個問題,經(jīng)常出現(xiàn)在面試題中,下面這篇文章主要給大家介紹了關(guān)于JavaScript數(shù)組去重的五種方法及其他細節(jié)和拓展的相關(guān)資料,文中通過實例代碼以及圖文介紹的非常詳細,需要的朋友可以參考下2022-12-12原生javascript中this幾種常見用法總結(jié)
這篇文章主要介紹了原生javascript中this幾種常見用法,結(jié)合實例形式總結(jié)分析了JavaScript中this的功能、常見用法及操作注意事項,需要的朋友可以參考下2020-02-02詳解微信小程序scroll-view橫向滾動的實踐踩坑及隱藏其滾動條的實現(xiàn)
這篇文章主要介紹了詳解微信小程序scroll-view橫向滾動的實踐踩坑及隱藏其滾動條的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03layui點擊左側(cè)導(dǎo)航欄,實現(xiàn)不刷新整個頁面,只刷新局部的方法
今天小編就為大家分享一篇layui點擊左側(cè)導(dǎo)航欄,實現(xiàn)不刷新整個頁面,只刷新局部的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09用于節(jié)點操作的API,顛覆原生操作HTML DOM節(jié)點的API
敏捷開發(fā)是一種以人為核心、迭代、循序漸進的開發(fā)方法。在敏捷開發(fā)中,軟件項目的構(gòu)建被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備集成和可運行的特征。2010-12-12