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.keyCode和event.which對大部分鍵值能獲得,但是有少部分也不能獲得
網絡查看說event.which 將 event.keyCode 和 event.charCode 標准化了。但實際還是有區別的。
所以一般都這樣寫兼容:
e.keyCode||e.which||e.charCode;
jquery API地址:http://api.jquery.com/event.which/
如下例子介紹Query限制文本框只能輸入數字和小數點的方法
$(function(){ /*JQuery 限制文本框只能輸入數字*/ $(".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設置輸入法不可用 /*JQuery 限制文本框只能輸入數字和小數點*/ $(".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設置輸入法不可用 });
Keycode對照表如下: