jQuery-как динамически добавить правило проверки
Я пытаюсь динамически добавить правило проверки к некоторым динамическим элементам управления:
$("input[id*=Hours]").rules("add", "required");
однако эта строка дает мне следующую ошибку:
$.элемент данных.форма, "валидатор") имеет значение null
определение правил статический способ с помощью функции validate работает нормально. Что я делаю не так?
спасибо, Джастин
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() вызывается первой.
ты это сделал? Сообщение об ошибке указывает на то, что вы этого не сделали.