我已经知道通过调用以下任何一种方法(可能更多),可以将FormControl
中的INPUT项目标记为dirt
或touched
:control.markAsTouched(); group.markAsTouched(); form.get('control-name').markAsTouched(); form.markAllAsTouched(); form.controls[someIndex].markAsTouched();
但是我看到markAsTouched
方法似乎在输入为focus
然后是blur
时被调用。
是否可以通过单击按钮来达到相同的结果?
在这里您可以看到current standard behaviour without a form,也可以在以下实时示例中对其进行测试:
对我来说,很明显,这种行为应该可以被代码触发,而不仅是在触发blur
事件时
类似这样的东西:
<input #myInput>
<button (click)="myInput.markAsTouched()">click</button>
路易斯,您可以使用唯一的formControl <input [formControl]="control">
和markAsTouched
<input [formControl]="control">
<button (click)="control.markAsTouched()">click</button>
{{control.touched}}
。ts中的位置
control=new FormControl()
//or in a function
this.control.markAsTouched()
FormControl可以属于或不属于FormGroup。此外,不必输入标签。我们正在使用标记输入来更改值,但是如果您删除输入,则控件也会被标记为已触摸]