javascript - 必填字段在按键时标记为 ng-valid,即使它为空

标签 javascript angular validation

我正在使用 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/

相关文章:

validation - 验证错误时未突出显示 PrimeFaces 输入组件

c# - 如何使用 pbix 的文件签名来识别它

validation - 在 type=text Ionic 的 ionic 输入中只允许数字

javascript - 使用 jquery 根据隐藏字段值删除隐藏字段

javascript - 使用 ajax 和 PHP 裁剪后将图像保存到 MySQL

javascript - 如何在 javascript 文件中存储包含 á ö ő í 等字母的字符串数组?

javascript - karma 测试 : the synthetic property @transitionMessages. 请在您的申请中包含 "BrowserAnimationsModule"或 "NoopAnimationsModule"

angular - 解析器错误 : Got interpolation ({{}}) where expression was expected

angular - 如何在斯巴达克斯中抑制静态页面的自定义上下文?

javascript - 内容安全政策 Chrome 应用程序 (img-src)