Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在动态添加的表单字段上实现以前声明的jquery.validate规则_Javascript_Jquery_Jquery Validate - Fatal编程技术网

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”);
}
});
});

联系方式
名字
姓
添加下一个
拯救