将验证规则从元素复制到另一个jquery

时间:2011-02-01 11:52:48

标签: jquery jquery-validate

我正在使用jquery验证,我想将规则从一个元素克隆到另一个元素。有可能吗?

var rule = $('[id=' + elementToCopy + ']').rules();

$(this).rules("add", rule);

3 个答案:

答案 0 :(得分:1)

您尝试的内容似乎有效,至少对于像required这样的简单规则。如果要按ID检索元素,请确保使用Id selector$("#" + elementToCopy))。另外,请注意rules("add", rules)方法的限制:

  

要求父表格是   验证,即   $(“form”)。首先调用validate()。

基本上,在开始添加/检索规则之前,请确保包含form1form2的{​​{1}}和element1都已调用element2。< / p>

我在这里创建了一个简单的例子:

http://jsfiddle.net/andrewwhitaker/4ShxX/

修改:它看起来也适用于自定义规则:

validate()

http://jsfiddle.net/andrewwhitaker/4ShxX/1/

答案 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);