在尝试验证 Angular 7 中的 input[type=number]
时,我遇到了一个奇怪的问题,希望有人能帮助解决。
<input class="form-control" type="number" name="entranceFee" min="0" [(ngModel)]="entranceFee" #entranceFee="ngModel" pattern="\\d+" [ngClass]="{ 'is-invalid': entranceFee.touched && entranceFee.invalid }" >
<div *ngIf="entranceFee.invalid && entranceFee.touched" class="invalid-feedback">
<div *ngIf="entranceFee.errors.pattern">Only numbers are permitted</div>
<div *ngIf="entranceFee.errors.min">Value cannot be smaller than '0'</div>
</div>
输入框只能接受大于等于0的数字
。但是,当我输入数字值(0-9)时,表单变为无效状态。为什么?在ngAfterViewChecked()
中将ngModel输出到控制台时,模型中写入了数字值。那么如何验证此表单?验证器中有错误还是我的问题?
使用响应式表单和/或input[type=text]
实现此代码时,结果相同。
min
不是验证指令。它只是一个标准的 HTML 属性,浏览器使用它来防止您旋转到最小值以下。 - JB Nizet