【发布时间】:2017-06-04 23:48:30
【问题描述】:
我有一个 number 输入字段,我想用 Angular2 进行验证:
<input type="number" class="form-control" name="foo" id="foo"
[min]="0" [max]="42" [(ngModel)]="foo" formControlName="foo">
到目前为止,这在 Chrome 中运行良好,因为 Chrome 忽略字符作为输入(不将它们插入到输入中 -> 输入为空 -> 需要验证触发器,或者已经有一个数字,所以最小/最大验证触发器)。
问题
另一方面,Firefox 允许用户在输入中输入字符,这就是问题所在,如果我插入字符,则所需的验证触发并且表单控件的值评估为 null,这会导致:
问题
我想区分空值和无效模式,但我发现实现这一点的唯一方法是制作input type="text" 并使用模式验证器,因为输入的值是null(如果它包含字符) 并且模式验证器不会在 input type="number" 上触发。
-
有没有办法使用 Angular2
李>FormGroup对象访问字段的实际值(即使输入包含42bar,即使document.querySelector('#foo').value评估为null)? 或者有没有办法检查输入字段是否包含字符?
或者除了使用
input type="text"之外别无他法?
【问题讨论】:
标签: javascript validation angular typescript