我已经知道了input
a 内的物品FormControl
可以标记dirt
or touched
通过调用以下任何方法(也许更多): group.markAsTouched(); form.get('control-name').markAsTouched(); form.markAllAsTouched(); form.controls[someIndex].markAsTouched();
但是,我可以看到markAsTouched
方法似乎在输入时被调用focus
进而blur
.
有没有办法通过代码达到相同的结果?比方说,当点击一个按钮时。
在这里,你可以看到一个 gif当前没有表单的标准行为 https://i.stack.imgur.com/clTNm.gif,您也可以在以下实时示例中自行测试:
https://stackblitz.com/edit/angular-peq11f https://stackblitz.com/edit/angular-peq11f
对我来说,很明显这种行为应该可以由代码触发,而不仅仅是当blur
事件被触发
像这样的事情:
<input #myInput>
<button (click)="myInput.markAsTouched()">click</button>
您可以使用独特的 formControl<input [formControl]="control">
and markAsTouched
<input [formControl]="control">
<button (click)="control.markAsTouched()">click</button>
{{control.touched}}
你在哪里有.ts
// as a property
control = new FormControl();
// or in a function
this.control.markAsTouched();
A FormControl
可以属于一个FormGroup
或不。此外,不需要有标签input
。我们正在使用标签输入来更改值,但是如果您删除input
,该控件也被标记为触摸
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)