如何使用javascript检查数字类型输入的有效性?
我已在表单中实现了数字类型输入,并指定了最小值和最大值:如何使用javascript检查数字类型输入的有效性?,javascript,validation,input,Javascript,Validation,Input,我已在表单中实现了数字类型输入,并指定了最小值和最大值: <input class="qty_input" name="quantit" type="number" value="5" min="1" max="50" maxlength="2" style="width:4em;"></input> 输入类型数字有效:如果输入了其他数字或数字值不在指定范围内,则输入变为红色 我有一个javascript函数,可以在输入更改时提交表单 <script type
<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(){
$.ajax({
网址:“布拉布拉”,
类型:“POST”,
数据:$(“#表单配置器”).serializeArray(),
数据类型:“json”,
成功:功能(数据)
{
控制台日志(数据);
},
错误:函数()
{
}
});
}
$('input[type=number]')。更改(函数(){
//测验效度
doAjax();
});
})(jQuery);
我想在运行doAjax()函数之前测试输入的数字是否有效
有没有一种简单的方法可以做到这一点,比如测试数字类型输入的“有效”参数?
(当输入本身执行某些测试时,它应该存在…)
谢谢你的帮助
Alex您可以使用isNaN()
函数验证输入是否为数字。如果条件允许,您可以添加另一个
if(isNaN(value) || value <1 || value > 50)
return ;
else
your logic
if(isNaN(值)|值50)
返回;
其他的
你的逻辑
如果该值不是数字,则返回true。如果是数字,则返回false
请参见现场样本:
$('input[type=number]')。更改(函数(){
var min=$(this.attr(“min”)*1;
var max=$(this.attr(“max”)*1;
var val=$(this.val().length?$(this.val()*1:NaN;
//测验效度
如果(val>=min&&valisNaN()
可以方便地检查其编号是否正确。您可以评估答案吗?这会起作用,但如果验证规则在HTML和JS中不重复会更好。@AdamHarwood立即检查这就是想法。如果type=number,则isNaN和min/max检查已经由HTML执行。无法检查结果在JS中进行此测试,而不是第二次进行所有测试?这仍然没有解决Alexglvr提出的问题。但是,可能HTML5根本没有提供一种“好”的方法来进行此测试。然后,我在JS中重新进行测试…使用两种混合解决方案。这很有效。再次感谢。
$('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");
}
});