jquery循环遍历元素并选择特定的一个

时间:2013-05-12 00:12:25

标签: jquery

我对jquery很新,所以请耐心等待。我正在循环遍历一组表单元素,并尝试选择一个特定的表单元素并对其执行某些操作。我遇到了一些麻烦,只是无法解决这个问题。我的下面的代码循环遍历所有表单元素,我正在尝试使用邮政编码的id来定位输入字段,并使用它进行一些特殊的邮政编码验证。除了首先点击邮政编码验证(即使它是第3个输入元素)并验证它然后通过所有其他表单元素并再次验证邮政编码。如何阻止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>

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

1 个答案:

答案 0 :(得分: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(!)以上是为了反转该功能,因为您可能希望在有输入时运行验证?