html - 使用 Angular 时应该使用什么样的表单验证?
问题描述
大家,我对 HTML5 验证和 Angular 表单验证感到困惑。
我想知道在验证表单 HTML5 或 Angular 自己的表单验证方法时应该使用哪种验证。
还请考虑解释:
为什么和为什么不。
哪个更好
哪个更安全。
解决方案
这是两个完全不同的东西。
一方面,您有 HTML 验证。例如 :
<input type="number" name="hour" min="0" max="23">
这是一个方便的验证:如果你点击箭头来增加值,你不会低于 0 或高于 23。但没有什么能阻止你输入 25。
接下来,您将进行 Angular 的表单验证。例如,在反应形式的情况下
this.form = this.formBuilder.group({
hours: ['', [Validators.max(23), Validators.min(0)]]
});
这是一个技术验证:Angular 会在你对它进行的每一次更改时检查表单是否有效。
您可以使用this.form.valid
和获取表单的状态this.form.invalid
。
如果您只依赖 HTML,您将依赖浏览器检查验证的能力。而且它们并没有那么先进。另外,您的用户将能够编辑 DOM 并简单地覆盖您的验证。
在使用 Angular 的每种情况下,都应该使用 HTML 验证和 Angular 的表单验证。前者用于用户体验,后者用于您的业务规则。
推荐阅读
- jira - 您如何在 JQL 中的“Assigned PO”字段中进行搜索?
- python - 如何在 Python 中解析 XML 并将信息存储在字典中
- bash - 移动文件特定文件夹
- c# - 如何将日志记录添加到 Blazor 服务器端组件?
- ios - Route 53 路由策略和 IOS 应用程序
- python - 如何在python中漂亮地打印四叉树?
- latex - 如何改进乳胶表
- python - 在 pip/conda install numpy 之后没有名为“numpy”的模块
- python - 在 Python 中捕获 403 禁止
- javascript - Django(REST 框架)到 JSON。如何在 JavaScript 中通过我的 API 获取数据?