如何禁用.clone()创建的字段集规则?请注意,这些字段不具有相同的名称或ID。有人在此之前做过这件事。
使用jquery validation plugin创建规则。
答案 0 :(得分:1)
好的,问题是验证插件并不真正支持克隆。理想情况下,避免它。但是如果你必须克隆,这是一种解决方法(不是超级健壮)。
http://jsfiddle.net/12s4fqv7/5/
//remove the rules and store them
var rules = [];
$("#f input").each(function(i){ // select each input in the form
rules[i] = $(this).rules("remove"); // remove and save the rule
});
//clone
$("#f").clone().prop("id","f2").appendTo('body'); // clone it, change the id and do something with it.
//add rules back on
$("#f input").each(function(i){ // select each input again
$(this).rules("add",rules[i]); // add the rule back
});
不是克隆,只需复制HTML并创建一个新的jquery对象:
var copy = $($('#form')[0].outerHTML).prop("id","newID")
这除了基本的html之外什么都没有。
据我所知,您使用jQuery validation plugin来验证表单。
仔细查看API,您可以删除以下规则:
$( "#excavationform" ).rules( "remove" );
请注意,.validate
不是jquery方法,而是第三方插件。这应该在问题中提到。
修改强>
应该在克隆上运行 .rules("remove")
。所以,
$(clone).rules("remove"); // replace "clone" as needed
//or
另外,请使用clone(true);
$( "#excavationform" ).clone(true).rules("remove");