我正在使用bassistance.de/jquery-plugins
这是默认的jQuery表单验证服务。
我知道有关jQuery验证的问题要求太多次,但我的问题是 有点不同。
我有一个带有一个文件输入的表单,我正在克隆如下
var picFields = $('#file').clone(true);
并附加到表单中以上传多个文件。
在克隆时,我有一个带有'required'名称的类,并添加了像
这样的规则$('.required').each(function() {
$(this).rules('add', {
required: true,
});
});
并且最初验证如
$('#form').validate();
仅验证第一个元素而不是所有动态添加的字段。
答案 0 :(得分:4)
每个输入都需要一个唯一的名称。插件没有考虑像 name =“location []”,你必须添加一个索引(正确的将是name =“location [0]”)。 对于克隆元素,我首先得到html“clone()。html()”然后我替换[0] 有一个计数器我跟踪Ex:.replace(/ [0] / g,“[”+ cont +“]”)
然后我可以安全地将生成的html附加到DOM,并且插件像往常一样工作。
记住:JQUERY VALIDATE需要在输入中有一个独特的名字!为此,我为自己付出了很多时间。
答案 1 :(得分:0)
解决它!
我曾经做过的事情:克隆对象后,我调用了一个创建验证的函数:
function add_another_form(){
var new_form = jQuery(".class").clone(true);
new_form.appendTo(".parent");
add_validation_for_forms();//attach again the validation !
}
function add_validation_for_forms(){
jQuery(".class").validate({....})
但那不起作用,所以我只是在那里使用了 .each 函数,它现在可以正常工作......
function add_validation_for_forms(){
jQuery(".class").each(function(){
jQuery(this).validate({....})