JQuery AJAX вызов: как разобрать результаты? - PullRequest
0 голосов
/ 07 сентября 2010

У меня есть модальное диалоговое окно (через jquery UI), которое отправляет форму на удаленный контроллер Action.

Это функция jquery, которая называется:

$("fpForm").submit(function() {
    $.ajax({
        type: "POST",
        url: "ForgotPassword",
        data: $("#fpForm").serialize(),
        success: function(response) {
            alert(response);
        },
        error: function(response) {
            alert(response);
        }
    });
});

Действие выполняет некоторую проверку данных и затем отправляет ответ в формате JSON. Скажем, например, что это пример ответа:

{"result":"NOK","message":"The user is not registered on the system"}

Мои вопросы:

  1. Почему предупреждение отладки, которое я установил в блоке "success" и "error", не выполняется?
  2. Как я могу написать свой код для анализа ответа, оставаясь в ожидании его в диалоговом окне?
  3. Как мне написать код для блокировки элементов формы во время вызова ajax?

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

Спасибо за ваши ответы

Ответы [ 2 ]

1 голос
/ 07 сентября 2010

Первая ошибка - это использование $("fpForm").submit вместо $("#fpForm").submit.

Если сервер откатывает данные JSON, например, как JsonResult, вы должны включить dataType: "json" для преобразования результата в объектв объекте.После этого вы можете заменить alert(response); на

alert('Result: ' + response.result + ', Message: ' + response.message);

Чтобы заблокировать элемент формы, я рекомендую вам использовать jQuery BlockUI Plugin demos вы найдете различные примеры использования и найдете способ, который вам нравится.

1 голос
/ 07 сентября 2010

Мои вопросы:

  1. Почему не выполняется отладочное предупреждение, которое я установил в блоке «success» и «error»?
  2. КакЯ могу написать свой код для анализа ответа, оставаясь в ожидании его в диалоговом окне?
  3. Как мне написать код для блокировки элементов формы во время вызова ajax?
  1. Если вы намеревались использовать id , то вы пропустили указатель # :

    $ ("# fpForm")

  2. Добавить опцию sync : true в вызове?

  3. Вы можете либо: установить атрибут disabled в элементах формы ПОСЛЕ отправка запроса или маскировка страницы элементом (возможно, полупрозрачным) для перенаправления ввода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...