我正在循环播放一系列输入框并执行 如果用户根本不输入任何内容,则进行验证。我有一个 条件,如果它是一个特定的id单一输入框 出来并对其进行单独验证。这是一个简单的验证 只需检查以确保表单的长度小于10个字符。 但由于某种原因,它不起作用。如果我输入一个字符 它只是进入下一次迭代。无论如何我也可以删除 在if语句中包含这些多个if语句。任何 非常感谢帮助。
$("form :input").each(function(){
var $this = $(this);
if(!this.value.length){
if(this.id == "phoneNumber" && $this.is(":visible")){
if($this.val().length < 10){
alert("phone number required");
}
}
} else if($(this).is(":visible")){
//do some other validation
}
答案 0 :(得分:2)
嵌套测试是问题所在:当您已经测试<10
时,测试长度是否为0
是没有意义的。当值为1个字符长度时,您甚至不会检查它是否与电话号码一样小。
你可能想要这个:
if (this.id == "phoneNumber" && $this.is(":visible") && this.value.length<10){
alert("phone number required");
} else if(!this.value.length) {
// alert field empty ?
} else ...
答案 1 :(得分:0)
jquery有一个验证插件。是否所有繁重的工作都适合你。它具有最小长度验证,加上验证,以查看该号码是否是有效的美国电话号码,有效的CC#和许多其他字段类型。 http://docs.jquery.com/Plugins/Validation