作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Angular 2,并且在表单验证方面面临一个相当基本的问题。一个必填的文本字段应该是数字,在第一个 keydown 事件后被标记为有效,无论我输入的值如何,我无法猜测为什么。
这是控件(我使用的是 Jade 模板):
input.form-control(required, type='number', [(ngModel)]='details.averageAnnualVisitorCount', placeholder='Example: 5000000')
最初,该控件按预期被标记为 ng-pristine 和 ng-invalid:
<input class="form-control ng-untouched ng-pristine ng-invalid" placeholder="Example: 5000000" required="required" type="number">
但是当我专注于该字段并按任意键(即使是无效的键)时,该控件会被标记为有效,但我不确定为什么。例如,我尝试了 Z,由于使用了 type='number'
而被拒绝,但该字段仍然标记为 ng-valid
,如下所示:
<input class="form-control ng-dirty ng-valid ng-touched" placeholder="Example: 5000000" required="required" type="number">
这不应该是 ng-ditry ng-invalid 和 ng-touched 吗?我还尝试添加 ngControl,认为我缺少与 ngControl 类相关的一些行为,但这也没有改变行为。
最佳答案
这是数字和选择字段的已知问题
关于javascript - 必填字段在按键时标记为 ng-valid,即使它为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36758888/
我是一名优秀的程序员,十分优秀!