0

我有一个文本框,我需要验证它是否只接受 1,1.5,2,2.5,3,3.5,...11.5 如何验证它.. 请告诉答案。

 $(document).on('keyup', '#Dia_Inch', function (e) {
        Dia_Inch = $(this).val();


        if (Dia_Inch.charAt(1) == ".") {
            if (Dia_Inch.charAt(2) != "5") {
                this.value = '';
                $('#Dia_Inch').val("");
                alert("Number must be between 0 and 11.5 If zero inches, must enter 0 Enter 1/2 inches as .5; -Ex. 3 and 1/2 inches entered as 3.5");
                return false;
            }
        }

        var val = isNumberInch(e);
        if (val == false || Dia_Inch > 11.5) {
            this.value = '';
            $('#Dia_Inch').val("");
            alert("Number must be between 0 and 11.5 If zero inches, must enter 0 Enter 1/2 inches as .5; -Ex. 3 and 1/2 inches entered as 3.5");
            return false;
        }

    });

这是我的示例代码..但它不会工作。

4

2 回答 2

2

您可以使用 jquery 执行此操作:

function validate(value){
  var arr = [1,1.5,2,2.5,3,3.5,...11.5];
  if($.inArray(value, arr) >= 0){
    return true;
  }
return false;
}

您必须根据需要进行修改。

这是一个小提琴:http: //jsfiddle.net/5Cm2w/

不要忘记使用您的实际值更新数组。

于 2013-07-01T14:03:53.743 回答
2

这可能会解决您的目的。

$(function() {
    $('button').on('click', function() {
      var val = $.trim($('input[type="text"]').val());
        if(val.length && $.isNumeric(val) && val.match(/^\d+(\.5{0,1})?$/)) {
           alert('valid')
        } else {
            alert('invalid');
            $.trim( $('input[type="text"]').val('') );
        }
    });
});

演示

但是如果你想允许高达 11.5 那么

$(function() {
    $('button').on('click', function() {
      var val = $.trim($('input[type="text"]').val());
        if(val.length && $.isNumeric(val) && val.match(/^[1-9]{1}[1]{0,1}(\.5{0,1})?$/)) {
           alert('valid')
        } else {
            alert('invalid');
            $.trim( $('input[type="text"]').val('') );
        }
    });
});

演示

于 2013-07-01T14:05:58.717 回答