2012-02-26 209 views
2

我有一個包含多個表單的頁面。每個表單都有自己的保存按鈕,它使用.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

回答

3

如果有人需要知道,我發現沒有辦法讓提交返回一個成功值。最後,我將ajax文章更改爲async:false,並將其放入一個函數中,該函數通過ajax文章的成功或錯誤事件返回布爾值。由於服務器調用的連續性不如此快,但我將添加一個加載對話框以幫助完成此操作。