2014-12-03 78 views
1

我想限制我的輸入框只有數字。對於我使用下面的代碼:允許編號並粘貼在輸入文本框中

$('.onlyNumType').keydown(function(event) { 
    var num = event.keyCode; 
    if ((num >= 48 && num <= 57) || 
     (num >= 96 && num <= 105) || 
     num == 8 || num == 9 || num == 37 || num == 39 || num == 46) { 
    } else { 
     event.preventDefault(); 
    } 
}); 

但我不能粘貼到這些文本框了。是否有條件允許粘貼操作?我試圖允許Ctrl和V鍵,但它也接受V字符。

+1

看到[this](http://stackoverflow.com/questions/4173460/bind-multiple-keys-to-keypress-event)文章 – tabz100 2014-12-03 17:28:34

+0

是的這篇文章有幫助,但現在文本框有任何東西,甚至粘貼字符。 – 2014-12-03 17:50:57

+0

然後,您可以將事件附加到onchange事件(這裏似乎還有一個粘貼事件,您可以使用它)並在有非數字字符的情況下取消該事件? – tabz100 2014-12-03 18:51:07

回答

0

您可以嘗試HTML5 input事件:

$('.onlyNumType').on('input', function(e) { 
    // Beware, this will get called even if user hits `CTRL+V`! 
    // In a nutshell, this will be triggered every time input changes. 
}); 

但是請注意,編程設定值一樣

$('.onlyNumType').val('Hiya!') 

不會觸發此事件。

相關問題