JQuery文本字段只接受数字作为输入,这很好用但是当我使用我的小键盘时它不起作用

时间:2013-09-03 08:58:44

标签: javascript jquery html

我希望我的JQuery代码只接受数字作为文本字段中的输入,这段代码对我来说效果很好但很快就发现如果我在我的小键盘中使用数字它不起作用。对这个问题有什么建议吗?

这是我的代码:

<script type="text/javascript">
    $(".txtboxToFilterNum").keydown(function(event) {

        if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 0 || event.keyCode == 13 || event.keyCode == 27) {
            // let it happen, don't do anything
        }
        else {
            // Ensure that it is a NUMBER and stop the keypress
            if (event.keyCode < 48 || event.keyCode > 57 ) {
                event.preventDefault(); 
            }   
        }
});
</script>

2 个答案:

答案 0 :(得分:0)

不要检查按下了哪个键,但是给出了哪些内容,更容易检查内容是否只是数字,并且它会阻止许多其他事情,例如使用复制和粘贴字母(我猜这是也没有在你给定的代码中处理)

答案 1 :(得分:0)

working sample

<强> HTML

<input type="text" class="textfield" value="" id="extra7" name="extra7" onkeypress="return isNumber(event)" />

<强>的Javascript

function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}