2010-11-02 106 views
1

我正在Zend Framework上構建表單生成器,我對驗證感到疑惑。Zend_Form驗證器與jQuery表單驗證器的動態表單生成器

  • 哪種驗證方法更容易實現 - jQuery(基於JS的驗證)或Zend_Validate?
  • 哪種類型的驗證會更強大?
  • jQuery是先決條件,我想使用Ajax驗證,以便驗證信息在不刷新的情況下顯示。有沒有辦法做到這一點與Zend_Validate,或者它只能用jQuery?

jQuery是我的JS框架的選擇。這就是爲什麼我要問這個具體問題。

回答

5

絕對不要只使用JavaScript進行表單驗證。 總是,始終,始終,驗證服務器上的數據。

您的JavaScript是客戶端;如果客戶端禁用JavaScript,會發生什麼情況?你的驗證不會運行(顯然你的頁面仍然可以工作,因爲你已經使用了漸進式增強等模式,對嗎?)。

更糟糕的是,怎樣阻止Ian Hacker先生打開Firebug或類似軟件,並修改源代碼以更改驗證方法?

jQuery驗證有助於立即向用戶提供有關他輸入的數據是否有效的反饋。它是而不是替代驗證服務器上的數據。

+1

總結:同時使用。 +1;) – Shikiryu 2010-11-02 10:00:55

+0

謝謝,我明白了! – 2010-11-02 10:09:04

1

1)哪種驗證方法更容易實現 - jQuery(基於JS的驗證)或Zend_Validate?

ans: Zend-Validate很容易,因爲它內置的設施,你只需要創建一個窗體並分配驗證器的屬性。

2)哪種類型的驗證更強大?

ans: Zend驗證器比jquery更強大。

3)jQuery是先決條件,我想使用Ajax驗證,以便驗證信息在不刷新的情況下顯示。有沒有辦法做到這一點與Zend_Validate,或者它只能用jQuery?

ans: zend驗證器提供驗證而不刷新頁面並且比jquery和Ajax更快。

+0

我沒有使用過Zend,但是從我的描述中我假設Zend同時使用了服務器端和客戶端(javascript)端驗證,然後這就是明確的方法。 – 2010-11-02 10:03:44

0

這一切都取決於驗證的原因。

JS驗證通常更容易實現,因爲它不需要服務器往返,但它也沒有用於安全性和一致性驗證,因爲JavaScript可能會被轉換爲http或被僞造成http後綴。

我會同時使用。

Javascript在客戶端幫助用戶完整填寫表單並進行更正,然後基於服務器進行安全性驗證。

這樣做的好處是用戶在查看需要更正的內容之前不必轉到服務器,並且服務器端驗證不需要像只缺少javascript或有意嘗試繞過檢查將看到這些錯誤消息。

0

我會建議同時使用! 您需要服務器端驗證以及客戶端。

也可以使用ZendX jQuery