实时Jquery表单验证和CakePHP验证

时间:2010-03-22 13:02:09

标签: jquery cakephp validation

我知道CakePHP具有非常好的验证功能,但我希望在提交之前在我的表单上执行实时JS验证。

我玩过jquery验证插件,这正是我想要的前端。 (它是一个模态框中的新闻订阅表格。)

问题是,如果我的验证失败,CakePHP的验证将重新显示包含错误消息的表单。我不需要这个,我只想在服务器端失败时返回false或重定向。

有没有人知道任何jquery验证将与cakephp自动形式验证很好地配合,并给我两全其美?感谢。

2 个答案:

答案 0 :(得分:3)

我编写了一个执行client side form validation on CakePHP forms的CakePHP插件。

它使用CakePHP模型的验证规则并生成一个jQuery脚本,该脚本几乎可以自动验证表单输入。

唯一的缺点(目前)是仅支持有限数量的数据类型进行自动验证。但另一方面,它托管在gitHub和GPL许可上,因此任何人都可以根据需要添加尽可能多的验证。

答案 1 :(得分:2)

您可以删除Cake端的自动验证,只需使用您的jquery验证来执行客户端工作。当然,您需要保护控制器,以便不保存无效字段。要做到这一点,我想你想要关闭Cake中的自动验证,并在你的控制器中调用$ this->验证($ this-> data),这将在无效数据提交时返回false。查看Model :: save()的参数,因为其中一个允许即使有坏数据也能完成保存(这就是你想要的,否则它将重新显示表单)。

总结一下,继续使用jquery执行客户端验证。在您的控制器中,检查以确保数据在保存之前有效(如果Controller :: validates返回false,则无论如何都需要重新显示表单。)