jQuery Ajax форма получает отправленную форму в качестве возвращаемого параметра в случае ошибки - PullRequest
0 голосов
/ 06 сентября 2018

Я использую jQuery Form Plugin для генерации и отправки моих Ajax-форм.Однако, если ajax-вызов завершается неудачно, я хотел бы предложить опцию option для повторной отправки формы и поэтому построил функцию displayError (), которая будет печатать верхнюю строку веб-сайта с предоставленной ошибкой и кнопку для отправки неудачной попытки.сформировать снова.

Однако, поскольку я использую несколько форм с одной и той же функцией на этом веб-сайте и, очевидно, с одним и тем же классом, мне нужно сообщить функции displayError (), какая форма была только что отправлена ​​и не выполнена.В функции beforeSubmit или success у меня есть так называемый параметр «myform», который, к сожалению, по какой-либо причине недоступен в функции error.

Есть ли возможность доступа к текущему объекту DOM в формеотправлено в функции ошибки вызова ajax?

$('.class').ajaxForm({ 
    beforeSubmit: function(data, myForm){

    },
    success: function(responseText, status, xhr, myForm){
        displaySuccess(responseText);
    },
    error: function(xhr, textStatus, errorThrown){
        displayError();
    }
});

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

1 Ответ

0 голосов
/ 06 сентября 2018

Как указал @ sh4dowb, запуск ajaxform внутри функции .each - действительно лучшее решение для решения этой проблемы. На случай, если у кого-то возникнут те же проблемы, я отвечаю на свой вопрос.

$('.class').each(function(){
    var that=this;
    $(this).ajaxForm({
        beforeSubmit: function(data, myForm){

        },
        success: function(responseText, status, xhr, myForm){
            displaySuccess(responseText);       
        },
        error: function(xhr, textStatus, errorThrown){
            displayError(function(){$(that).submit()});
        }
    });
});

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

...