【问题标题】:How should form validation work?表单验证应该如何工作?
【发布时间】:2014-03-18 17:05:55
【问题描述】:
我想知道一般情况下,建议如何验证 HTML 表单?通过提交表单(使用 POST)然后显示验证错误,或者使用 JavaScript(或两者)在同一页面上验证它?我们使用的是 Django,默认验证是通过提交表单,但我看到一些网站使用 JavaScript 验证表单。验证表单的推荐方法是什么?特别是对于可能为空或空白的必填字段。
【问题讨论】:
标签:
javascript
jquery
django
forms
validation
【解决方案1】:
两者都是肯定的。
首先在 javascript 中 - 不要因为数据不足而打扰服务器。
然后在服务器上 - 打败黑客(以及禁用 javascript 的用户)。
在这两种情况下,我更喜欢将所有错误消息收集在一个字符串中,
所以用户可以在重试之前更正它们。
“内联”/“即时”检查(直观地指示字段何时正常)
是锦上添花:)
【解决方案2】:
最好的方法是双向验证 -
- 在客户端验证,但有时如果 js 代码没有被缩小,那么它可以通过使用开发者工具来破解
- 因此,为了 100% 安全,请在服务器端也使用验证。
在客户端进行验证的最佳方式是使用 HTML5 表单验证,对于 polyfills 使用一些插件(有很多 jquery 插件)。在记录作品时,创建自己的验证脚本始终是一种选择。