Javascript 如何根据条件在多组输入中执行验证
我通过克隆以下HTML模板,在按下(+)按钮的同时动态创建一组文本框:Javascript 如何根据条件在多组输入中执行验证,javascript,jquery,Javascript,Jquery,我通过克隆以下HTML模板,在按下(+)按钮的同时动态创建一组文本框: <div id= "other_leaders" class="controls form-input"> <input type="text" name="other_leader_fname[]" class="input_bottom other_leader_fname" id="other_leader_fname" placeholder="First Name" value="'.$val
<div id= "other_leaders" class="controls form-input">
<input type="text" name="other_leader_fname[]" class="input_bottom other_leader_fname" id="other_leader_fname" placeholder="First Name" value="'.$val[0].'" />
<input type="text" name="other_leader_lname[]" class="input_bottom other_leader_lname" id="other_leader_lname" placeholder="Last Name" value="'.$val[1].'" />
<input type="text" name="other_leader_email[]" class="other_leader_email" id="other_leader_email" placeholder="Email Address" value="'.$val[2].'" />
<input type="text" name="other_leader_org[]" class="other_leader_org" id="other_leader_org" placeholder="Organisation/College" value="'.$val[3].'" />
<span class="remove btn"><i class="icon-minus"></i></span>
</div>
现在我的问题是,如果某个文本框组中的任何一个文本框字段由用户填充,如何对所有四个文本框执行空验证
例如:如果我在id为other_leader_fname的
中输入值,那么它应该对该特定组的其他三个文本框执行空验证
如何执行此操作?尝试此操作,您可以使用以下代码将验证规则应用于div中的所有文本框:
$("#other_leaders :input[type='text']").each(function(){
if($(this).val()=="" || !RegExpression.test($(this).val()))
{
$(this).addClass('custom-error')
fnameflag = 0;
}
});
您可以使用迭代
.controls
,并使用检查每个组中的填充输入,以执行验证,如下所示:
$('.controls').each(function(){
var $inputs = $(this).find('input');
var filled = $inputs.filter(function(){
return this.value != "";
});
if(filled.length){
$inputs.each(function(){
if($(this).val()=="" || !RegExpression.test($(this).val()))
{
$(this).addClass('custom-error')
fnameflag = 0;
}
})
}
});
旁注:由于上面是动态生成内容的模板,您应该删除
id
并使用class,因为id
在文档中应该是唯一的。因为您只有一个元素,所以不需要在其上循环:
var $othLeader = $("input[name*='other_leader_fname']");
if($othLeader.val()=="" || !RegExpression.test($othLeader.val())){
$(this).addClass('custom-error');
fnameflag = 0;
}
如果您有表单,那么您可以在表单的提交函数中对此进行验证。您缺少一个分号
代码>在$(this).addClass('custom-error')
行,否则代码对我来说可以正常工作。你是否先包含jquery.validate文件?验证?想知道是否有任何答案有帮助。。?
var $othLeader = $("input[name*='other_leader_fname']");
if($othLeader.val()=="" || !RegExpression.test($othLeader.val())){
$(this).addClass('custom-error');
fnameflag = 0;
}