Вызов проверки jQuery вручную после вызова AJAX не работает? - PullRequest
6 голосов
/ 01 октября 2010

У меня смешанная проверка на стороне клиента и на стороне сервера с использованием плагина проверки jQuery. Проверка происходит как для отправки, так и для некоторых полей при изменении. Форма отправляется через AJAX. Перед обновлением БД выполняется еще одна проверка приложения. Если изменения данных не сохраняются в базе данных из-за сбоя проверки, я возвращаю результат через JSON методу JS, обрабатывающему отправку формы AJAX. В идеале я бы поднял ошибку с пользовательским сообщением, передаваемым из бэкэнда в JS чем-то вроде $ .validator.showErrors (объект); как обсуждено здесь К сожалению, метод validator.showErrors (...) не определен в этом контексте:

$(document).ready(function() {
    $('.form').each(function() {
    $(this).submit(function(e) {
        e.preventDefault();
        if ($.submitForm()) {
    (...)
            $.post(url, $.param(context), function(data) {
                if (!data.success) {
                    $.validator.showErrors(...);
                    //$("#basicdetails").validate();
                }
            }, "json");
        }
        (...)

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

Я хотел бы сохранить статическую проверку на стороне клиента и после отправки ajax, чтобы иметь возможность вызывать любые ошибки, которые могли произойти на сервере.

Спасибо за любую помощь, которую вы можете оказать.

Pawel

1 Ответ

15 голосов
/ 01 октября 2010

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

$("#basicdetails").valid();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...