如何在jQueryvalidation中validation克隆元素?
我正在使用bassistance.de/jquery-plugins
这是默认的jQuery表单validation服务。
我知道有关jQueryvalidation的问题问了太多次,但我的问题是
有点不同。
我有一个表单有一个文件输入,我克隆如下
var picFields = $('#file').clone(true);
并附加到表单上传多个文件。
克隆时我有“必需”名称的类,并添加规则
$('.required').each(function() { $(this).rules('add', { required: true, }); });
并初步validation像
$('#form').validate();
它仅validation第一个元素而不是所有动态添加的字段。
每个输入都需要一个唯一的名称 插件没有考虑像name =“location []”这样的东西,你必须添加一个索引(正确的将是name =“location [0]”)。 对于克隆元素,我首先得到html“clone()。html()”然后我用计数器代替[0]我跟踪Ex:.replace(/ [0] / g,“[”+ cont +“] “)
然后我可以安全地将生成的html附加到DOM,插件可以照常工作。
记住:JQUERY VALIDATE需要在输入中有一个独特的名字! 我付出了很多时间为此付出了代价。
解决这个问题 !
我曾经做过的事情:克隆对象后,我调用了一个创建validation的函数:
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({....})