jQuery Ajax 表单在发生错误时将提交的表单作为返回参数



我正在使用jQuery Form插件来生成和提交我的Ajax表单。但是,如果 ajax 调用失败,我想提供重新发送表单的选项,因此构建了一个 displayError(( 函数,该函数将打印网站的顶部栏,并提供错误和一个按钮再次提交失败的表单。

但是,由于我在本网站内使用具有相同功能且显然具有相同类的多个表单,因此我需要告诉 displayError(( 函数哪个表单刚刚提交并失败。在 beforeSubmit 或成功函数中,我有一个所谓的"myform"参数,不幸的是,无论出于何种原因,它在错误函数中都不可用。

是否有可能访问在 ajax 调用的错误函数中提交的表单的当前 DOM 对象?

$('.class').ajaxForm({ 
beforeSubmit: function(data, myForm){
},
success: function(responseText, status, xhr, myForm){
displaySuccess(responseText);
},
error: function(xhr, textStatus, errorThrown){
displayError();
}
});

这只是我正在使用的代码的简化版本,但应该足以理解问题。提前非常感谢!

正如@sh4dowb指出的那样,在.each函数中运行ajaxform实际上是解决此问题的最佳解决方案。以防万一有人遇到同样的问题,我正在回答我自己的问题。

$('.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()});
}
});
});

这实际上解决了我的问题。如上所述,这只是完整脚本的简化版本。

最新更新