2014-10-08 62 views
1

我在一个形成若干类型的输入已实施,最高指定分钟:如何检查一个数字类型输入唱歌JavaScript的有效性?

<input class="qty_input" name="quantit" type="number" value="5" min="1" max="50" maxlength="2" style="width:4em;"></input> 

输入类型作品数量:如果再进入别的一些,或者如果数值不在规定范围内,输入变为红色。

我有一个javascript函数提交输入更改窗体。

<script type="text/javascript"> 
(function($) { 

    function doAjax() { 
    $.ajax({ 
     url : "blabla", 
     type: "POST", 
     data : $("#form-configurator").serializeArray(), 
     dataType: 'json', 
     success: function(data) 
     { 
      console.log(data); 
     }, 
     error: function() 
     { 

     } 
    }); 
    } 
$('input[type=number]').change(function() { 

    // test Validity 

    doAjax(); 
    }); 
})(jQuery); 
</script> 

我想测试之前运行doAjax()函数,如果数字输入有效。

有没有一种简单的方法来做到这一点,比如测试数字类型输入的“有效”参数? (它应该存在的输入进行一些测试本身...)

感谢你的帮助,

亚历

+0

'isNaN()'派上用场,以检查其是否号码或不 – Navin 2014-10-08 09:41:26

+0

你能评价答案? – 2014-10-08 11:23:23

回答

1

可以使用isNaN()功能验证输入是一个数字或没有。您可以添加其他条件,如果像

if(isNaN(value) || value <1 || value > 50) 
return ; 
else 
    your logic  

如果该值不是number.If它是数字,它将返回true,那么它将返回false。

here

+0

这将起作用,但如果验证规则不在HTML和JS中重复,那将会更好。 – 2014-10-08 09:50:16

+0

@AdamHarwood现在检查它 – PSR 2014-10-08 09:54:42

+0

这是想法。使用type = number,isNaN和min/max检查已经由html执行。没有办法在JS中检查此测试的结果,而不是再次进行所有测试? – Alexglvr 2014-10-08 10:24:39

0

这里活样本:http://jsfiddle.net/zueku6mo/

$('input[type=number]').change(function() { 
    var min = $(this).attr("min") * 1; 
    var max = $(this).attr("max") * 1; 
    var val = $(this).val().length ? $(this).val() * 1 : NaN; 
    // test Validity 
    if (val >= min && val <= max) { 
     $(this).css("background-color", "white"); 
     doAjax(); 
    } else { 
     $(this).css("background-color", "red"); 
    } 
}); 
  • 投分钟& max属性与* 1
  • 到号码检索当前值和投它如果不为空
  • 怎样数
  • 做一些数学失败,如果有NaN VA略
  • 设置背景的红色信号值误差
相关问题