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

4
如何使用jQuery和CodeIgniter进行客户端和服务器端验证?我正在使用jQuery表单插件提交表单。我想在客户端使用jQuery验证插件(http://docs.jquery.com/Plugins/Validation),在服务器端使用CodeIgniter表单验证。但是这两者似乎不兼容(或者我无法理解)。请有人帮助一下吗?无论是客户端验证还是服务器端验证,用户都应该看到一致的UI,在输入字段旁边显示错误消息。

[编辑] 看起来我可以像这样将服务器端错误传递给showErrors() (http://forum.jquery.com/topic/jquery-validation-showerrors-error)。然而,如果我进行额外的服务器端验证(例如检查用户名是否已被占用),这些验证消息在用户切换到这些字段时会被验证插件清除。

4个回答

3

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

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

尝试使用http://formigniter.org/,它会构建包含验证的表单(视图),模型,sql和控制器。非常简单...

希望这可以帮助到您。


刚注意到这篇文章的日期。哦,天啊,我没有魔法绿色勾勾了 :(。 - logic-unit
点赞并接受了答案...我还没有时间尝试它。 - Zero
@user9437856 兄弟,这个答案已经8年了。我很久没有使用CodeIgniter了。 - logic-unit
@logic-unit,没错。我正在面对这个问题。还有其他的帮助吗? - user9437856

0
什么不清楚吗?每个方法都将是独立的。
从高层次来看,您将在提交表单数据之前使用客户端验证。如果客户端检查通过,则提交表单并在服务器端运行验证。如果服务器端验证失败,则在重新渲染页面时打印错误信息,成功验证/保存也是如此。

jQuery验证插件有两个功能:1)运行验证 2)如果验证失败,则显示错误消息当我运行服务器端验证(在ajax提交之后),我更喜欢使用相同的代码来完成第2步。我该如何实现这一点? - Zero

0

你是不是不想在客户端验证中重复服务器端的验证规则和消息?这在CodeIgniter框架的核心中不受支持。

我在CodeIgniter维基上看到有人写了一个库用于从服务器端生成JavaScript的验证规则。我没有尝试过,但这可能是你要找的东西。


0

我想做同样的事情,虽然可以实现,但有些棘手。你可以创建可靠的服务器端验证方法,并使用远程Ajax调用它们。如果没有启用JavaScript,则只需使用普通的服务器端验证方法而不进行远程调用。这样,您将只有一个验证代码库。

问题是,您的客户端验证速度会变慢,因为它需要不断与后端通信。更大的问题是,您不能使用一些强大的客户端验证库,因为它们都假定验证是在客户端而不是远程完成的。

我放弃了这个想法。我必须在客户端和服务器上复制我的验证逻辑和错误消息。虽然不理想,但对于用户体验来说是最好的选择,您将能够利用出色的前端库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接