0

我正在尝试限制我的用户输入以符合 999.99

我正在使用此代码尝试排除第二个小数点的输入,但它不起作用。谁能帮我解决这个问题?

jQuery(".textr2").live('input', function (event) {

     var str = jQuery(this).val();

     alert(str);

     if (str.search('.')) {
        alert("Finds a dot");
        jQuery(this).val(jQuery(this).val().replace(/[^0-9]/g, ''));
     }
     else {
        alert("NO Dot");
        jQuery(this).val(jQuery(this).val().replace(/[^0-9\.]/g, ''));
    });
4

2 回答 2

1

您可以尝试检查按键输入的值。

小提琴演示

尝试

$("#test1").keypress(function(event) 
{
    var numberPattern     = /^([0-9]{0,3})(\.[0-9]{0,2})?$/;    
    var key               = event.which;
    var character         = String.fromCharCode(key);
    var selectionStart    = this.selectionStart;
    var value             = $(this).val();
    var stringPattren     = new RegExp('(.{'+selectionStart+'})');
    var replacePattren    = '$1'+character;
    var string            = value.replace(stringPattren,replacePattren);
    var isTab             = key === 0;
    var isBackspace       = key === 8;
    var shouldTest        = ! isBackspace && ! isTab;
    var passed            =  ! shouldTest;

    if(shouldTest)
    {
       passed = numberPattern.test(string);
    }

    return passed;
});
于 2013-09-01T18:57:27.200 回答
0
var str        = this.value;
var firstDot   = str.indexOf('.');
var secondDot  = str.indexOf('.', firstDot + 1);

if ( firstDot >= 0 && secondDot >= 0 ) {
    this.value = str.substr(0, secondDot) + str.substr(secondDot + 1);
}

这是小提琴:http: //jsfiddle.net/YN4ta/

于 2013-09-01T18:49:22.587 回答