Плагин jQuery Validation с динамически добавленными элементами управления - PullRequest
4 голосов
/ 06 июня 2011

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

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

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

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

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

Ответы [ 3 ]

1 голос
/ 07 июня 2011

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

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

1 голос
/ 06 июня 2011

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

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

НТН

0 голосов
/ 23 января 2013

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

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

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

...