按键时标记为ng的必填字段有效,即使是's是空的
Required field marked as ng-valid on keypress, even when it's empty
我使用的是Angular 2,在表单验证方面面临着一个相当基本的问题。一个本应是数字的必填文本字段在第一个keydown事件后被标记为有效,无论我输入的值是什么,我都猜不出原因。
这是控制(我使用的是Jade模板):
input.form-control(required, type='number', [(ngModel)]='details.averageAnnualVisitorCount', placeholder='Example: 5000000')
最初,控件按预期标记为ng原始和ng无效:
<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">
这不应该是无效的,而应该是被触摸的吗?我还尝试添加ngControl,认为我缺少了一些与ngControl类相关的行为,但这也没有改变行为。
这是一个已知的数字和选择字段问题
- https://github.com/angular/angular/issues/8048
- https://github.com/angular/angular/issues/6527看起来这将在下一个测试版中修复
我在尝试对论坛进行颜色编码以显示验证时遇到了这个问题。我用了ng模式来修复它。也许试试吧?我知道有一个简单的reg表达式可以用来检测数字。查看此处以获取reg表达式帮助。
相关文章:
- 为什么不是'我的函数在解析云代码中工作吗?当我在Angular和Express中测试时,它是有效的
- 文本字段显示它是有效的,即使它在ExtJS中是无效的
- “*[attribute ^="string”是如何/为什么是有效的querySelector?(JS bug
- 筛选数字数组,其中 0 是有效输入
- 按键时标记为ng的必填字段有效,即使是's是空的
- 使用ajax验证的reCAPTCHA总是返回错误,即使是正确的
- 视频通过javascript被隐藏,但已经开始播放(自动播放模式),即使是's不可见
- 如果验证错误是有效的JAVASCRIPT,则启用按钮
- 我的基于节点的咖啡脚本未运行(错误%1不是有效的应用程序.)
- 选择id中带有双点的元素,错误:“#octo:cat”不是有效的选择器
- 这是有效的 js oop
- 未捕获错误:不是有效的 2D 阵列
- 这是有效的 js 参数吗?
- 为什么在这里再次调用新是有效的
- 未定义不是有效函数上的函数
- 我无法获得热图.js即使是简单的热图也可以工作
- 在iframe中编辑另一个网页的样式的方法,即使是表面上的
- 如何确保提交的数据是有效的数字对
- Jquery ajax总是导致'error'即使是在有效的时候
- JSON.parse()不工作,即使JSON字符串是有效的