2014-09-03 72 views
0

點我有以下的功能,讓按鍵時只有數字:的jQuery只允許用數字

$('input').keypress(function(e) { 
var a = []; 
var k = e.which; 

for (i = 48; i < 58; i++) 
    a.push(i); 

if (!($.inArray(k,a)>=0)) 
    e.preventDefault(); 
});​ 

我不能也讓點(代碼:190)。這裏是一個小提琴:http://jsfiddle.net/umNuB/

+1

當心,你也已經成功地禁用退格並刪除。 – Nit 2014-09-03 22:20:22

+0

正如其他人指出的 - 「點」(。)的十進制值是46 - 不是190 - 請參閱:http://www.ascii.cl/htmlcodes.htm – 2014-09-03 22:24:30

+2

點實際上有代碼46. – 2014-09-03 22:26:26

回答

2

添加

a.push(46); 

你的循環後,它將使時期。

+0

作品完美。謝謝 – domi771 2014-09-03 22:44:46

0

在我自己的鍵盤e.which.46;你從哪裏得到190?因此,我的代碼如下:

$('input').keypress(function(e) { 
    var a = [46]; 
    var k = e.which; 
    for (i = 48; i < 58; i++) 
     a.push(i); 

    if (!($.inArray(k,a)>=0)) 
     e.preventDefault(); 
}); 

DEMO

1

我覺得你想驗證輸入只能浮點數允許的,這裏的示例float驗證

$('input').keypress(function(event) { 
    if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) { 
    event.preventDefault(); 
    } 
});