2011-02-07 46 views
0

我有一個通常有散列的表單。我可以按照正常的方式提交表單並運行通常的驗證。如果有錯誤,表單重新呈現並且zend會添加常見錯誤。看起來用ajax(jQuery)提交表單意味着我失去了所有這些驗證,我確信之前已經解決了這個問題。如何在做Ajax提交時獲得相同的驗證和處理錯誤?如何克服通過ajax提交表單的缺點

我曾經擔心散列元素,但是我發現它似乎對於ajax表單提交併不重要。所以這是一個道理。

回答

1

使用AJAX處理驗證是一個兩步過程。首先,您應該整合全面的前端驗證。這應該在實際進行AJAX調用之前提醒用戶注意問題。

其次在服務器上包含標準驗證。如果失敗,您可以簡單地生成404未找到或400錯誤的請求,因爲有人正在嘗試發送數據而不通過前端驗證。請注意,如果您需要需要對某些組件(重複的電子郵件地址,用戶名等)進行服務器端驗證,則可能會導致問題。在這種情況下,您可以將錯誤以您想要的格式發回(JSON和XML非常常見)並將它們呈現爲前端。

+0

此外,前端驗證取決於javascript被啓用。你不能總是依靠這一點,並以此爲基礎的404並不會成爲一個好用戶。 – Matthew 2011-02-07 15:29:28