Плагин jQuery для подключения AJAX-формы - ДОЛЖЕН обеспечивать обратный вызов ошибок - PullRequest
3 голосов
/ 11 марта 2009

Какой лучший способ подключить функциональность AJAX к существующей Форме с помощью jQuery и разрешить обратный вызов обработки ошибок.

Встроенная функция jQuery.ajax(...) имеет следующие (полезные) функции обратного вызова:

beforeSend

полная

dataFilter

ошибка

успех

Я думал, что нашел свой ответ с помощью плагина jQuery.Form , но по какой-то сумасшедшей причине они не дают вам доступа к обратному вызову с ошибкой !! Помимо этого упущения, это кажется весьма полезным.

В общем, я действительно встревожен количеством статей, которые рекомендуют использовать jQuery.get, прежде чем они порекомендуют jQuery.ajax. Напомним, что get() не имеет обратного вызова с ошибкой, но ajax() имеет.

По моему мнению, вы должны всегда использовать ajax(), потому что вы всегда должны иметь некоторую разновидность логики обработки ошибок.

Существуют ли другие приятные плагины, особенно те, которые хорошо работают с ASP.NET-MVC, которые я должен использовать, чтобы облегчить подключение?

Ответы [ 6 ]

6 голосов
/ 11 марта 2009

Это очень простой фрагмент, который я скопировал из моего проекта и только что немного взломал (едва протестировал). Дайте мне знать, если это работает.

(function() {
$.fn.ajaxify = function(options) {
    $(this).submit(function(e) {
        var form = $(this);
        $.ajax({
            type : form.attr('method'),
            url : form.attr('action'),
            data : form.serialize(),
            error : options.error,
            success : options.success,
            dataType : "script"
        });

        return false;
    });
}
})();

используя его:

$('form').ajaxify(
    {success: success_method_name, 
    error: error_method_name});
3 голосов
/ 10 апреля 2009

По данным этой страницы:

http://www.malsup.com/jquery/form/#api

"обратите внимание, что объект параметров можно также использовать для передачи значений в метод $ .ajax jQuery. Если вы знакомы с параметрами, поддерживаемыми $ .ajax, вы можете использовать их в объекте параметров, передаваемом в ajaxForm и ajaxSubmit."

Это включает в себя параметр обработчика 'error', однако я не могу заставить его работать ...

Rich

1 голос
/ 30 декабря 2009

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

например:

$("form#new_asset").ajaxForm({
  error: function(a, b, c) {
    alert('error')
  }
});
0 голосов
/ 04 июня 2010

Только что проверил, и Крис О'Салливан действительно прав, хотя в данный момент я думаю, что это недокументировано.

0 голосов
/ 11 марта 2009

Вы пытались настроить обработчик с помощью $. AjaxError () ?

0 голосов
/ 11 марта 2009

Почему бы не использовать JSon? Вы можете собрать данные из формы и отправить запрос JSon.

...