通过jquery从submit()获取返回值

问题描述:

我有一个包含多个表单的页面。每个表单都有自己的保存按钮,它使用.ajax()验证并显示错误消息以发布(不是普通的post方法)。我还在jQuery click()处理程序捕获的表单之外有一个Next按钮。这个函数遍历每个表单并为每个表单调用$(formname).submit()。通过jquery从submit()获取返回值

最终,我需要知道各个表单是否通过了验证,以确定是否应该发生重定向。我在submit函数的validate检查的else语句中添加了return false;,但我看不到如何检索它。

alert($(this).submit());只是返回对象不是返回值。无需重新编码每个表单的整个$ .ajax邮政编码,无论如何,我可以找出提交失败?

//next button click 
$('#savenext').click(function() { 
    var finalsuccess; 
    $('.record_form').each(function (index) { 
     alert($(this).submit()); //I want this to be true or false 
    }); 
//forms each have their own submit handler 
$(formname).submit(function (e) { 
    e.preventDefault(); 
    var form = $(this); 

    if($(form).valid()) { //validate the form, return false if it is not valid. 
    //Post the form to the action if it passes 
     $.ajax({ 
      url: form.attr('action'), 
      type: "POST", 
      dataType: "text json", 
      data: form.serialize(), 
      success: function (response) { 
       //does some success messages here 
      }, 
     }); 
    } 
    else { 
     return false; 
     } 
}); 

感谢

+0

为什么不使用'jquery Validation'插件呢? : -/ – uday 2012-02-26 07:29:56

+0

Hi @Dave。验证一切都很顺利,所以我不需要改变任何。我只需要找出从form.submit()获取响应的最佳方法。该插件中是否有允许这样做的内容? – Danni 2012-02-26 08:44:43

如果有人需要知道,我发现没有办法让提交返回一个成功值。最后,我将ajax文章更改为async:false,并将其放入一个函数中,该函数通过ajax文章的成功或错误事件返回布尔值。由于服务器调用的连续性不如此快,但我将添加一个加载对话框以帮助完成此操作。