【问题标题】:JQuery: Restrict input characters to 0-9 [duplicate]JQuery:将输入字符限制为 0-9 [重复]
【发布时间】:2014-07-06 10:26:51
【问题描述】:

当用户按下某个键时,我想删除不在 0-9 范围内的字符,但此代码不起作用:(jsfiddle)

$('input').on('keypress', function(event){
        var char = String.fromCharCode(event.which)
        var txt = $(this).val()
        if (!txt.match(/^[0-9]*$/)){
            var changeTo = txt.replace(char, '')
            $(this).val(changeTo).change();
        }
});

我做错了什么? 谢谢

【问题讨论】:

  • 我认为使用 JQuery Validation (jqueryvalidation.org) 插件可以做得更好...
  • keypress 事件在值改变之前被触发 - 这就是为什么txt 不会包含新值

标签: jquery validation


【解决方案1】:

更新小提琴:

http://jsfiddle.net/JXYbC/3/

$('input').on('keypress', function(event){
    if (event.keyCode < 48 || event.keyCode > 57)
        return false;
});

但正如 Mikk3lRo 所指出的,stackoverflow 上已经有更好的答案,因为例如您还应该允许删除键,以便用户可以更正输入:

How to allow only numeric (0-9) in HTML inputbox using jQuery?

【讨论】:

    猜你喜欢
    • 2013-08-11
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    相关资源
    最近更新 更多