Javascript 如何在动态添加的表单字段上实现以前声明的jquery.validate规则
我必须克隆表单的特定部分,并且必须实现前面定义的相同验证规则 当我研究这个问题时,几乎所有人都建议在新生成的元素中再次添加新规则。所以,我尝试用以下代码添加新规则Javascript 如何在动态添加的表单字段上实现以前声明的jquery.validate规则,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我必须克隆表单的特定部分,并且必须实现前面定义的相同验证规则 当我研究这个问题时,几乎所有人都建议在新生成的元素中再次添加新规则。所以,我尝试用以下代码添加新规则 let $contactItem = $(".contact") .first() .clone() .insertAfter($(".contact").last()); $contactItem.find("input
let $contactItem = $(".contact")
.first()
.clone()
.insertAfter($(".contact").last());
$contactItem.find("input").each(function(){
$(this).rules("add", {
required : true,
messages : { required : 'field is required.' }
});
});
但我运气不好,这项技术并没有解决我的问题。因此,我正在寻找另一种解决方案
有关我正在使用的库的一些详细信息:
- jQuery v1.9.1
- jQuery验证插件v1.17.0
$(文档).ready(函数(){
让$validator;
$(“#btnAddNew”)
.off(“单击”)
.on(“单击”,函数(){
让$contactItem=$(“.contact”)
.first()
.clone()
.insertAfter($(“.contact”).last();
});
$validator=$(“#contactForm”).validate({
规则:{
名字:{
必填项:true
},
姓氏:{
必填项:true
}
},
信息:{
名字:{
必需:“*必需”
},
姓氏:{
必需:“*必需”
}
},
忽略:“:隐藏,:禁用”
});
$(“保存”)
.off(“单击”)
.on(“单击”,函数(){
if($validator.form()){
控制台日志(“ok”);
}
});
});代码>
联系方式
名字
姓
添加下一个
拯救
只需向元素添加必需的
可能是最简单的解决方案,并修改默认消息
我还注释了一种设置类规则的方法
注意:您还需要修改名称,使其唯一。我使用了非常简单的增量逻辑,如果要添加和删除,请修改
$.extend($.validator.messages{
必选:“*必选。”
})
//交替使用类规则
/*jQuery.validator.addClassRules(“名称字段”{
必填项:true
});*/
$(文档).ready(函数(){
让$validator;
$(“#btnAddNew”)
.off(“单击”)
.on(“单击”,函数(){
设$contact=$(“.contact”);
让$contactItem=$contact
.first()
.clone()
.insertAfter($(“.contact”).last();
//增量输入名称
$contactItem.find('input').attr('name',function(\uu,curr){
返回电流+$contact.length
});
});
$validator=$(“#contactForm”).validate();
$(“保存”)
.off(“单击”)
.on(“单击”,函数(){
if($validator.form()){
控制台日志(“ok”);
}
});
});代码>
联系方式
名字
姓
添加下一个
拯救
只需向元素添加必需的
可能是最简单的解决方案,并修改默认消息
我还注释了一种设置类规则的方法
注意:您还需要修改名称,使其唯一。我使用了非常简单的增量逻辑,如果要添加和删除,请修改
$.extend($.validator.messages{
必选:“*必选。”
})
//交替使用类规则
/*jQuery.validator.addClassRules(“名称字段”{
必填项:true
});*/
$(文档).ready(函数(){
让$validator;
$(“#btnAddNew”)
.off(“单击”)
.on(“单击”,函数(){
设$contact=$(“.contact”);
让$contactItem=$contact
.first()
.clone()
.insertAfter($(“.contact”).last();
//增量输入名称
$contactItem.find('input').attr('name',function(\uu,curr){
返回电流+$contact.length
});
});
$validator=$(“#contactForm”).validate();
$(“保存”)
.off(“单击”)
.on(“单击”,函数(){
if($validator.form()){
控制台日志(“ok”);
}
});
});代码>
联系方式
名字
姓
添加下一个
拯救