0

我对 jquery 很陌生,所以请耐心等待。我目前正在遍历一组表单元素并尝试选择一个特定的元素并对其进行处理。我遇到了一些麻烦,只是无法弄清楚。我下面的代码循环遍历所有表单元素,我试图定位一个带有邮政编码 id 的输入字段,并使用它进行一些特殊的邮政编码验证。除了它首先通过邮政编码验证(即使它是第三个输入元素)并验证它,然后通过所有其他表单元素并第二次验证邮政编码。我将如何防止a)邮政编码验证被击中两次和b)邮政编码不是第一个验证的输入元素,而是第三个。

$("#homeForm :input").each(function(){

    if($("#zipCode").val().length == 0){
    //do some zip code validation
    } 

    if($(this).val().length == 0 && $(this).is(":visible")){             
    //do some regular validation
    }       

});

我的html在这里:

<form id="homeForm>
   <input type="text" name="fullName" id="fullName" />
   <input type="text" name="homePhone" id="homePhone" />
   <input type="text" name="zipCode" id="zipCode" />
   <input type="text" name="age" id="age" />
   <input type="text" name="homeTown" id="homeTown" />
</form>

新手在这里,任何帮助都非常感谢。

4

1 回答 1

2
$("#homeForm input").each(function(){
    if (!this.value.length) {
        if (this.id == 'zipCode') {
            //do some zip code validation
        }else if ( $(this).is(":visible") ) {
            //do some regular validation
        }       
    }
});

这可以防止:

a) 邮政编码验证被击中两次,并且

b)邮政编码不是第一个验证的输入元素,而是第三个。

您当然意识到只有在没有输入任何内容时才进行验证,即元素值没有长度(您正在检查长度是否为零),所以我可能会删除上面代码中的 not (!) 以反转该功能,因为您可能想在有输入时运行验证?

于 2013-05-12T00:21:18.023 回答