繁体   English   中英

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

[英]JQuery textfield only accepts numbers as input, this works well but when I use my numpad it does not work

我希望我的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>

不要检查按下了哪个键,而是给出了哪个内容,这将更容易检查内容是否仅是数字,并且可以防止许多其他事情,例如使用带字母的复制和粘贴(我猜这不是在您指定的代码也是如此)

工作样本

的HTML

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

Java脚本

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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM