Копировать правила проверки из элемента в другой jquery - PullRequest
1 голос
/ 01 февраля 2011

Я использую проверки jquery и хочу клонировать правила из одного элемента в другой. Возможно ли это?

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

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

Ответы [ 3 ]

1 голос
/ 01 февраля 2011

Кажется, что вы пытаетесь работать, по крайней мере для простых правил, таких как required.Убедитесь, что вы используете Id selector ($("#" + elementToCopy)), когда хотите получить элемент по id.Также следует помнить об ограничении метода rules("add", rules):

Требуется проверка родительской формы, т. Е. $ ("Form"). Validate ()вызывается первым.

В основном, убедитесь, что и form1, и form2, содержащие element1 и element2, вызвали validate(), прежде чем начать добавлять / извлекать правила.1019 *

Я создал простой пример здесь:

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

Редактировать: Также похоже, что это работает для пользовательских правил:

$.validator.addMethod("onlycharacters", function(value, element) {
    return this.optional(element) || /^[A-Za-z]+$/.test(value);
}, "Only characters");

$("#form1").validate({
    rules: {
        name: {
            onlycharacters: true
        }
    }
});
$("#form2").validate();

var rules = $("#name").rules();
$("#name2").rules("add", rules);

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

0 голосов
/ 01 февраля 2011

Сценарий ниже копирует правила и сообщения, код, который у вас есть, делает это только для правил.Обратите внимание, что запрос для сообщений использует имя элемента, а не идентификатор элемента.

var rules = $('#elementtocopy').rules();
rules['messages'] = $('form').data('validator').settings["your element name, NOT id"];
$('#newelementid').rules("add", args);
0 голосов
/ 01 февраля 2011

Да, вы можете сделать это.Но будет более элегантно, если вы выполните эту задачу, используя функцию клона jQuery.Это делает глубокую копию набора соответствующих элементов.http://api.jquery.com/clone/

Передав первый параметр, вы можете скопировать элемент со ВСЕМИ событиями и атрибутами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...