我正在使用jquery验证,我想将规则从一个元素克隆到另一个元素。有可能吗?
var rule = $('[id=' + elementToCopy + ']').rules();
$(this).rules("add", rule);
答案 0 :(得分:1)
您尝试的内容似乎有效,至少对于像required
这样的简单规则。如果要按ID检索元素,请确保使用Id selector($("#" + elementToCopy)
)。另外,请注意rules("add", rules)
方法的限制:
要求父表格是 验证,即 $(“form”)。首先调用validate()。
基本上,在开始添加/检索规则之前,请确保包含form1
和form2
的{{1}}和element1
都已调用element2
。< / p>
我在这里创建了一个简单的例子:
http://jsfiddle.net/andrewwhitaker/4ShxX/
修改:它看起来也适用于自定义规则:
validate()
答案 1 :(得分:0)
是的,你可以做到。但是如果你使用jQuery clone功能完成这个任务会更优雅。这是匹配元素集的深层副本。 http://api.jquery.com/clone/
传递第一个参数,您可以复制包含所有事件和属性的元素。
答案 2 :(得分:0)
下面的脚本会复制规则和消息,您只为规则执行此操作的代码。请注意,消息的查询使用元素名称,而不是元素ID。
var rules = $('#elementtocopy').rules();
rules['messages'] = $('form').data('validator').settings["your element name, NOT id"];
$('#newelementid').rules("add", args);