数字字段只接受数字和`,`

时间:2011-10-04 21:34:34

标签: javascript jquery

如何将此数字(普通数字格式)js代码更改为仅接受数字,,意味着不接受字词或字符(例如:-=+!...)只接受号码和,。怎么回事?

示例http://jsfiddle.net/fQb9X/

$(document).delegate('input.numeric:text', 'keyup', function () {
    $val = $(this).val().match(/[0-9]/g).reverse().join("").match(/[0-9]{1,3}/g).join(",").match(/./g).reverse().join("");
    $(this).val($val)
});

1 个答案:

答案 0 :(得分:0)

我最近写了这样的东西:

var oldnumber='';
var $ctrl=$('input[name=passport_number]');
$ctrl.focusout(function () {
    if (isFinite($ctrl.val()) || $ctrl.val()==',') {
        oldnumber=$ctrl.val();
    } else {
        $ctrl.attr('value',oldnumber);
    }
});

基本上,如果您输入有效答案,则会记住该值。如果你写的不是数字或',',那么该字段将被设置回其先前的有效值。

如果你问我,我的解决方案很短,非常干净。它会检查它是否为数字,如果不是,则会拒绝您的输入。

修改

如果您想在键入时进行此操作,请尝试以下操作:

$('input').bind('keyup change',function(){
    var v = parseInt($(this).val());
    $(this).val((isNaN(v) && v!=',')?'':v);
});

希望有所帮助:)