Angular 10(更改)未在表单输入字段中检测到

Angular 10 (change) not detected on form inputfield

当我使用 (change) 检测输入字段更改时,它仅在用户离开输入字段时显示更改。这是 html 代码:

<input type="text"  (change)="check('test')" class="form-control form-control-lg" class="form-control" formControlName="title"  [ngClass]="!rForm.controls['title'].valid && rForm.controls['title'].touched ? 'red-border-class' : 'black-border-class'">

我做错了什么我想在用户转到下一个输入字段后立即检测到更改。

有人可以帮忙吗?

感谢

使用 Keyup 而不是 Change 可能会满足您的要求

<input type="text"  (keyup)="check('test')" class="form-control form-control-lg" class="form-control" formControlName="title" 
      [ngClass]="!rForm.controls['title'].valid && rForm.controls['title'].touched ? 'red-border-class' : 'black-border-class'">

您可以使用 (blur) 事件,它会在您离开输入框后调用

<input (blur)='check('test')'/>

我猜你想使用 (keypress)- 或 (keyup)-Event。

你至少有两种方法可以做到这一点。

使用按键事件

Better description about keyup

<input (keyup)="check('test')">

FormControl的valueChanges

https://angular.io/api/forms/AbstractControl#valueChanges

rForm.controls['title'].valueChanges.subscribe(() => {
  check('test');
});