如何在输入聚焦时隐藏错误消息?

问题描述 投票:3回答:1

我正在使用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的模板驱动形式方法。

angular angular2-forms
1个回答
3
投票

基于此comment,您可以使用布尔标志,当输入字段处于焦点或焦点不在焦点时,您可以在truefalse之间切换。

所以声明boolean,最初为false:

notFocused = false;

并使用focusfocusout事件来切换你的布尔值:

<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>

StackBlitz

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.