2014-12-03 84 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!') 

不会触发此事件。

相关问题