jQuery-как динамически добавить правило проверки


Я пытаюсь динамически добавить правило проверки к некоторым динамическим элементам управления:

$("input[id*=Hours]").rules("add", "required");

однако эта строка дает мне следующую ошибку:

$.элемент данных.форма, "валидатор") имеет значение null

определение правил статический способ с помощью функции validate работает нормально. Что я делаю не так?

спасибо, Джастин

4 53

4 ответа:

нужно позвонить .validate() прежде чем вы сможете добавить правила таким образом, например:

$("#myForm").validate(); //sets up the validator
$("input[id*=Hours]").rules("add", "required");

The .validate() документация это хороший гид, вот объявление о .rules("add", option):

добавляет указанные правила и возвращает все правила для первого совпадающего элемента. Требуется, чтобы родительская форма была проверена, то есть $("form").validate() вызывается первой.

для проверки всех динамически генерируемых элементов можно добавить специальный класс к каждому из этих элементов и использовать каждую функцию (), что-то вроде

$("#DivIdContainer .classToValidate").each(function () {
    $(this).rules('add', {
        required: true
    });
});

, а также убедившись, что вы первым назвали $("#myForm").validate();, убедитесь, что ваш динамический элемент управления был добавлен в DOM перед добавлением правил проверки.

документация говорит:

добавляет указанные правила и возвращает все правила для первого совпадения элемент. Требуется, чтобы родительская форма проверяется, то есть, $("форма.)"метод validate() вызывается первой.

ты это сделал? Сообщение об ошибке указывает на то, что вы этого не сделали.