使用jQuery和CodeIgniter执行客户端和服务器端验证

时间:2010-03-13 04:50:08

标签: jquery validation forms codeigniter plugins

使用jQuery和CodeIgniter进行客户端和服务器端验证的正确方法是什么?我使用jQuery form plugin表单提交。我想在服务器端使用jQuery验证插件(http://docs.jquery.com/Plugins/Validation)进行客户端验证和CodeIgniter表单验证。然而,这两个似乎并没有凝聚在一起(或者我无法理解它)。有人可以帮忙吗?无论是客户端验证还是服务器端验证,用户都应该在输入字段旁边看到一致的UI显示错误消息。

[编辑]看来我可以将服务器端错误传递给showErrors(),就像这里(http://forum.jquery.com/topic/jquery-validation-showerrors-error)一样。但是,如果我正在进行客户端规则中不存在的额外服务器端验证(如检查是否已使用用户名),则当用户选中这些字段时,验证插件会清除这些验证消息。

4 个答案:

答案 0 :(得分:3)

如上所述,这是两个不同的事情。

只需在Jquery中构建客户端验证,如果通过,将其交给表单控制器并在那里运行validation / xss过滤。

尝试http://formigniter.org/它将构建你的表单(视图),模型,sql和控制器,其中包含验证。容易腻子......

希望这有帮助。

答案 1 :(得分:0)

有什么不清楚的?每种方法都是不同的。

在较高级别,基本上您将在提交表单数据之前使用客户端验证。如果客户端检查通过,则提交表单并运行验证服务器端。如果服务器端验证失败,那么它应该在重新呈现页面时打印错误,同样如果验证/保存成功。

答案 2 :(得分:0)

您是否不希望在客户端验证中复制服务器端验证规则和消息?核心CodeIgniter框架不支持此功能。

我浏览了CodeIgniter维基,有人写了a library to generate javascript from server side validation rules。我没试过。但它可能就是你要找的东西。

答案 3 :(得分:0)

我想做同样的事情,可以做但是很棘手。您可以做的是创建可靠的服务器端验证方法,您可以使用Ajax远程调用它们。如果没有启用javascript,您只需使用正常的服务器端验证方法而无需远程调用。这样,您将只有一个用于验证的代码库。

然而,问题是,您的客户端验证会慢很多,因为它经常需要与后端进行通信。更大的问题是你不能使用一些强大的客户端验证库,因为它们都假设验证是在客户端完成的,而不是远程验证。

我只是放弃了完成这个。我不得不在客户端和服务器上复制验证逻辑和错误消息。它并不理想,但最适合用户体验,您将能够使用出色的前端库。