2010-03-22 287 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许可证上,所以任何人都可以根据需要添加尽可能多的验证。