2010-03-22 168 views
2

我知道CakePHP具有非常好的現成驗證功能,但我希望在提交表單之前對錶單執行實時JS驗證。Live Jquery表單驗證和CakePHP驗證

我已經玩過jQuery驗證插件,這正是我想要的前端的東西。 (它的通訊訂閱表單在一個模式框中)。

問題是,如果我的驗證失敗,CakePHP的驗證將重新顯示包含錯誤消息的表單。我不需要這個,我只是想返回錯誤或重定向,如果它失敗的服務器端。

有誰知道任何jquery驗證,將很好地坐在cakephp automagic表單驗證,並給我兩全其美?謝謝。

回答

2

您可以刪除Cake的自動驗證方面的事情,只是使用您的jQuery驗證來執行您的客戶端工作。當然,您需要保護控制器,以便不保存無效字段。爲此,我想你想關閉Cake中的自動驗證,並在你的控制器中調用$ this-> validates($ this-> data),這將在無效數據提交時返回false。查看Model :: save()的參數,因爲其中一個參數允許即使數據不正確也可以完成保存(這是您想要的,否則它將重新顯示錶單)。

總結一下,只需繼續並使用jquery執行客戶端驗證即可。在您的控制器中,檢查並確保數據在保存之前進行驗證(如果Controller :: validates返回false,則無論如何都需要重新顯示錶單)。

+0

非常感謝的點);) – 2010-03-24 09:33:05

3

我寫了一個CakePHP插件,它的確輸入了client side form validation on CakePHP forms

它使用CakePHP模型的驗證規則並生成一個jQuery腳本,該腳本可以自動驗證表單輸入。

唯一不足的是(目前)僅支持有限數量的數據類型進行自動驗證。但另一方面,它託管在gitHub和GPL許可證上,所以任何人都可以根據需要添加儘可能多的驗證。