1

我正在构建一个应用程序,它使用 ajax 调用来进行表单验证和其他一些验证,问题是当这些验证错误出现在根本没有 css 的新页面上并且在没有 javascripts 的情况下完全重置表单时,我不喜欢它。

我说的是十几个表格,所以用户一遍又一遍地浏览表格会很烦人。

我已经阅读了有关此主题的一些答案,但是对于这种情况,是否有一种特定的方法和最佳实践(更多的是表单验证)?

抱歉,如果已经有答案。

编辑:

所有验证都是在服务器端完成的,目前错误是在 ajax 的帮助下显示的。如果在处理表单时发生错误,我想要一种方便的方法来重新填充表单并显示错误而无需 javascript。

4

4 回答 4

4

我不确定你的问题是否暗示你没有在服务器上验证 - 这将被认为是一个巨大的安全漏洞,因为很明显可以通过简单地禁用 Javascript 来绕过表单。您每次都必须在服务器中进行验证,而客户端验证很简单。

此外,当您使用一个体面的框架时,让表单在重新加载页面时自行重置的“问题”变得没有意义——在 Python 中,Django 会在出现错误时自动重新填充表单。在 PHP 中,CakePHP 和 CodeIgniter 也是如此,我相信大多数优秀的框架都会这样做,因为它属于框架应该抽象出来的“常见任务”类别。

每当我不使用框架时,我都会编写自己的小表单类来满足需要。

编辑

我不知道您可以插入任何内容来重新填充表单。你最好的选择是为它编写你自己的小班,这应该不会超过 1 小时。

于 2009-06-16T18:25:48.327 回答
1

我通常做的是将所有错误字符串存储在会话变量中的数组中(我使用 PHP)。如果服务器端出现错误,请将用户重定向回表单页面,检查会话变量,并根据需要显示错误。确保在显示后取消设置会话变量以释放内存。重新填充表单也是如此——会话变量中的值。

于 2009-07-14T20:55:19.657 回答
0

表单验证应该先写在服务器上,然后再写在客户端上。无论如何,您都应该在服务器上进行验证。不要依赖 Ajax 来完成像表单验证这样简单且对站点操作至关重要的事情。使用不显眼的脚本,您可以阻止默认表单提交,然后使用 Ajax 处理表单。否则,允许提交通过并使用服务器生成的验证页面进行响应。

于 2009-06-16T18:25:02.137 回答
0

在服务器端执行验证并重新填充表单。

通过 AJAX 验证很好,但不能强制执行。因此,无论 AJAX 是否发生,都执行验证会更有效。我建议第二条路线可以处理验证并为那些拥有 javascript 的人传回 JSON 中的一系列错误。但是对于那些没有 javascript 的人来说,验证工作的唯一方法是通过服务器端。

不幸的是,您在这方面并没有真正的选择。任何具有firebug的中途程序员或黑客都可以编辑你的javascript,分离钩子,并绕过你试图在他身边做的一切:偏执并在服务器端强制验证。

于 2009-06-16T18:27:59.477 回答