2014-06-27 454 views
0

我有一個HTML表單,我需要僅允許數字按鍵。爲此,我使用了以下代碼 用於刪除密鑰的錯誤ASCII密鑰代碼

 
    $(".span8").keypress(function(e) 
    { 
     var unicode=e.charCode? e.charCode : e.keyCode 
    //alert(unicode); 
    if ((unicode ==8) || (unicode==9)|| (unicode==46)){ 
     //if the key isn't the backspace key (which we should allow) 
    } 
    else 
    { 
     if (unicode<48||unicode>57&&unicode!=65) //if not a number 
     return false //disable key press 
    }

});

但是,在這裏如果我正在測試keycode,我將獲得值爲46的delete key。 46用於點( - 期間) 其他值正在變得正確。我無法找到我是否會出錯。 請幫忙

+2

檢查:http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes – Amit

+0

HTTP://www.javascriptkit .com/javatutors/javascriptkey2.shtml – Sasi

+0

謝謝@Sasi。代碼幫助了我! – user3758868

回答

3

我也發現這個奇怪的行爲與keypress功能。

相反,請嘗試以下操作:

jQuery(function($) { 
    var input = $('.span8'); 
    input.on('keydown', function() { 
    var key = event.keyCode || event.charCode; 

    if(key == 8 || key == 46) 
     //Do something when DEL or Backspace is pressed 
    }); 
}); 
+0

謝謝@Jakob ,,,使用keydown實際上排序我的問題。但爲什麼keydown和keypress產生不同的結果? – user3758868

+0

我已經解釋過[這裏](http://stackoverflow.com/a/18864466/2518317)和另一個[使用參考](http://stackoverflow.com/a/1445228/2518317)至於爲什麼這些值是不同的 – Hashbrown