【发布时间】:2018-09-13 15:18:13
【问题描述】:
我有一个用 Bootstrap 4 和 AngularJS 制作的表单,我想在可能的地方做一个简单的表单验证:
- 在用户触摸输入字段后验证输入字段,
- 根据验证约束显示两种不同的错误消息,
- 创建自定义验证约束(例如比较密码和密码确认字段)。
1.
在以前版本的 Bootstrap 中,您可以执行以下操作:
<div class="form-group" ng-class="{'has-error': userForm.email.$invalid && userForm.email.$touched}">
但在 Bootstrap 4 中,没有“has-error”类。我尝试改用“is-invalid”类
<div class="form-group" ng-class="{'is-invalid': userForm.email.$invalid && userForm.email.$touched}">
但什么也没发生。我设法使它像Bootstrap 4 Documentation 中所示的那样工作,但验证仅在表单提交后发生,而不是在用户触摸输入字段时发生。
2.
Bootstrap 4 中没有错误消息,只有“无效反馈”,我不知道如何根据违反哪个约束来更改消息文本。我试过类似的东西:
<div class="invalid-feedback">
<p ng-show="userForm.email.$error.required">Required</p>
<p ng-show="userForm.email.$error.email">Enter a valid email</p>
</div>
但这不起作用。
3.
我尝试制作一个 Angular 指令,但因为 1. 和 2. 不起作用,我无法对此进行测试。
任何帮助将不胜感激。
更新
正如 Peter Wilson 所建议的,我的代码没有任何问题。代码不起作用,因为我的表单位于模态窗口中,并且模态窗口必须在 AngularJS 中有一个单独的控制器才能正常工作。
【问题讨论】:
-
请使用 plunker/jsfiddle/codepen 或 stackoverflow 的代码 sn-p 工具为您的代码创建一个工作代码 sn-p。这将有助于快速解决。有时在创建代码 sn-p 的同时,你也可能自己找到解决方案,这对你自己也是一个很好的学习。
标签: angularjs twitter-bootstrap twitter-bootstrap-4