плагин проверки jQuery с динамически добавляемыми элементами управления


В ASP.Net, я добавляю элементы управления динамически с помощью jQuery.тмпл.

Я инициализирую валидатор в $(document).ready() function с $("#form1").validate();, Мои динамические элементы управления имеют class="required", и я вызываю $("#form1").valid() на событие click.

Статические элементы управления на странице проверяются, но элементы управления, добавленные динамически, не проверяются. Что здесь не так?

Кроме того, динамические элементы управления заставляют валидатор действовать странно, показывая и скрывая сообщение проверки, когда я нажимаю на различные элементы управления.

Пример: http://jsfiddle.net/wY6xt/2/

3 4

3 ответа:

Вы добавляете правила к элементам управления, которые вы добавляете динамически? Проверьте эту ссылку . Ниже приведен способ сделать это. Я думаю, что поскольку элементы управления добавляются на лету, он не может связать правила (в вашем случае классы) с элементами управления (я не так уверен, но я думаю, что стоит попробовать).

$("#txtEmail_1").rules("add", "required");

HTH

Проблема заключается в том, что подключаемый модуль требует проверки элементов управления на наличие уникальных имен. Элементы управления, добавляемые здесь, все имеют одно и то же имя, поэтому плагин ведет себя безумно.

Вот пример исправленной работы с уникальными именами: http://jsfiddle.net/wY6xt/3/

У меня была такая же проблема. Проверка Jquery не может быть применена к динамическим элементам управления, добавленным на лету из-за ограничения уникального имени/идентификатора. Мое решение заключается в специальном имени класса для вашего динамического элемента управления и использовать имя класса для проверки. В вашем вопросе динамический элемент управления имеет имя класса "required", поэтому вы можете сделать следующее,

$(.required).each(function(){ $(this).rules('add', {required:true, messages:{required: 'Required Field'}});});

Это работает на меня. Надеюсь, что это может помочь и вам.