Проверка jQuery остается действительной после обратной передачи ajax

0

У меня есть форма, в которой валидатор работает в первый раз, но не во второй раз. Код проверяется на стороне клиента без каких-либо проблем, но как только форма отправляется и форма частично отображается, хотя поля недействительны, $ ('form'). Valid() продолжает возвращать true всегда.

Данные проверяются на стороне сервера, но затем ошибка отображается дважды. Мои правила задаются сгенерированным кодом MVC4, поэтому правила корректно инициируются.

Не уверен, возможно ли повторная проверка формы. Обратите внимание, что $ ('form'). Validate() не работает. Он возвращает validator и valid() возвращает true все время.

Здесь варианты. Функция displayErrors находит элемент html, который показывает ошибки.

/* Set additional settings for the validator */
        var options = {
            onfocusout: false,
            onkeyup: false,
            onclick: false,
            showErrors: function (errorMap, errorList) {
                displayErrors(errorList, false);
            }
        };

Помощь приветствуется.

  • 0
    Во-первых, покажите достаточно кода ... во-вторых, пожалуйста, не используйте ненужные теги. jquery-validation-engine - совершенно другой плагин.
  • 0
    $('form').validate() является методом инициализации и может быть вызван только один раз. Последующие звонки игнорируются. Ваш фреймворк, вероятно, автоматически вызывает .validate() при загрузке страницы. Да, вы можете проверять форму более одного раза ... это то, что может сделать метод .valid() ... однако, слишком много кода отсутствует в вашем OP, чтобы сказать, где вы идете не так.
Показать ещё 5 комментариев
Теги:
unobtrusive-validation
asp.net-mvc-4
jquery-validate

1 ответ

1

Я решил это, сделав что-то вроде этого

$vlt = $('#myForm').validate(); //-- get validator
$vlt.checkForm(); 

if ( $('#myForm').valid()){
//-- code
}

Кажется, что это делается так, что валидатор смог выбрать новые изменения. Не уверен, что я упоминаю, что форма была повторно отображена и заменена на $ ('# okok'). Html (newStuff);

Во всяком случае, я мог бы прийти к выводу, я не буду рекомендовать этот плагин другу :))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню