我正在使用angular2中的angular2进行表单验证。我想在用户键入无效值时停止显示错误消息,并仅在用户在输入框外单击时显示错误消息。
form.html
<form>
<ion-input type="text" [(ngModel)]="username" name="username" #username="ngModel" required></ion-input>
<span *ngIf="username.touched && username.invalid && username.dirty">username is incorrect</span>
<form>
当用户键入数字时,abouve表单显示错误消息。我想在用户键入时隐藏错误消息,即焦点输入,并在用户在输入字段外点击时显示错误消息,即失焦。
我怎样才能做到这一点?
我正在使用angular2的模板驱动形式方法。
基于此comment,您可以使用布尔标志,当输入字段处于焦点或焦点不在焦点时,您可以在true
和false
之间切换。
所以声明boolean,最初为false:
notFocused = false;
并使用focus
和focusout
事件来切换你的布尔值:
<form #f="ngForm">
<ion-input type="text" (focus)="notFocused=false" (focusout)="notFocused=true"
[(ngModel)]="username" name="userrname" #userrname="ngModel" required>
</ion-input>
<span *ngIf="userrname.invalid && notFocused">
username is incorrect
</span>
</form>