2011-03-02 27 views
2

這裏是我想要做的,jQuery的AJAX表單驗證,然後繼續前往表單提交

捕捉我的表單提交張貼到我的表單驗證AJAX處理(不重新加載頁面明顯)

然後,如果ajax服務器端沒有返回錯誤數組(下面的代碼中的數據)繼續提交實際的表單。在代碼片段底部的'return false'應該可以防止jquery的默認行爲(即提交表單)

我試過的只是return true,如果我們沒有得到任何錯誤但是不起作用。

有什麼建議嗎?

這是我走到這一步:

$('.submit').click(function(e) { 
    $.ajax({ 
     type: "POST", 
     url: "/processform_ajax", 
     data: $(':input').serializeArray(), 
     dataType: "json", 
     success: function(data) { 
      if (data != '') { 
       $("#response span").html(""); 
       $('.highlightbox').removeClass('highlightbox'); 
      } else { 
       $('#myform').submit(); 
      } 
     }, 
     error: function(error, txt) { 
      alert("Error: " + error.status); 
     } 
    }); 
    return false; 
}); 
+0

你的HTML /表單看起來像什麼?您的processform_ajax上的 – Detect 2011-03-02 22:41:29

+0

它返回什麼? – gfivehost 2011-03-03 01:44:32

回答

0

我處理這兩種不同的方式:

首先,做精彩的Jquery Inline validation tool前端驗證這一步敲出來的問題,95%的前必須用PHP和Jquery來處理棘手的問題。

其次,我將我的值從表單提交給腳本。讓PHP(在我的情況下)對驗證進行「思考」。如果不正確,我將以json_encoded字符串的形式返回成功函數的信息。我建立一個案例(例如,如果data.valid == true),然後顯示錯誤標誌。否則,請執行成功步驟並在用戶界面中通知用戶。

我認爲你的情況的關鍵是確保返回的數據是json_encoded。僅供參考,我注意到json_encode中的一些非常隨機的問題,有時由於方括號而導致數據返回函數的問題,這是完全有效的,但有時會導致無錯誤的錯誤。

祝你好運。

+1

謝謝。我把所有這些都整理出來了,但是你的回答讓我發現問題就在於我處理JSON響應的方式。基本上我認爲JS是拋出一個錯誤,因爲在AJAX返回時,如果一切都很好,我沒有返回數據數組,這導致JS在'數據'未定義時出現「if」語句問題,所以$( '#myform')。提交從未執行。設置data.valid ==真正沒有錯誤解決了這個問題。我希望這是有道理的 :) – bonez 2011-03-03 18:18:10

相關問題