Lar*_*ars 3 validation angular2-template angular
尝试input[type=number]在 Angular 7 中进行验证时遇到一个奇怪的问题,希望有人能提供帮助。
<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>
Run Code Online (Sandbox Code Playgroud)
输入只能接受numbers >= 0。但是每当我输入一个数字值 (0-9) 时,表单就会失效。为什么?当我在控制台中输出 ngModel 时,ngAfterViewChecked()一个数值被写入模型。那么我怎样才能验证这个表格呢?验证器或我的头脑中有错误吗?
使用响应式表单和/或使用此代码实现此代码时也会发生同样的情况 input[type=text]
试试这个:
<input
class="form-control"
type="number"
name="entranceFee"
#entranceFee="ngModel"
[(ngModel)]="entranceFee.value"
pattern="^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$"
[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>
Run Code Online (Sandbox Code Playgroud)
这是供您参考的工作示例 StackBlitz。
正则表达式礼貌 -这个答案
| 归档时间: |
|
| 查看次数: |
5345 次 |
| 最近记录: |