我对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>
新手在这里,非常感谢任何帮助。
答案 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(!)以上是为了反转该功能,因为您可能希望在有输入时运行验证?