0

我目前正在遍历一系列输入框并在用户根本没有输入任何内容时执行验证。我有一个条件,如果它是一个特定的 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    
}
4

2 回答 2

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 ...
于 2013-05-13T15:58:23.143 回答
0

jquery 有一个验证插件。为您完成所有繁重的工作。它具有最小长度验证,以及验证号码是否是有效的美国电话号码、有效的抄送号码和许多其他字段类型。 http://docs.jquery.com/Plugins/Validation

于 2013-05-13T16:03:43.560 回答