我一直在对此进行一些研究,但仍然找不到一个好的解决方案。基本上,我有这个基本表格,如果我点击清除按钮,我想休息一下表格。目前,它会重置它,但是您会看到它在半秒钟中显示了该字段的错误消息,然后消失了。我的问题是:如何重置表单,以便清除每个字段中的所有值,并且从不显示任何错误消息。提前非常感谢!
这是我的代码:
clearForm(){
this.registrationFormGroup.reset();
}
答案 0 :(得分:1)
您可以更改逻辑以检查特定错误,如下所示:
userlastname.touched && userlastname.hasError['minLength']
。
至于使用有效/无效-我认为您有时会模糊字段,并在单击按钮时显示错误消息。
编辑
上面的答案是错误的。我能够使其正常工作的唯一方法是执行 double reset 。您需要同时在clearForm
和mousedown
上调用click
。
如果您仅在clearForm
上调用mousedown
,则将表单设置为在click
(鼠标)上被触摸,另一方面,如果您仅在{{1 }},当clearForm
时会出现erorr消息。 Live demo来自您的叉子。
答案 1 :(得分:0)
您可以尝试这样修改您的表单吗?
<form [formGroup]="registrationFormGroup" #registrationFormDirective="ngForm" (ngSubmit)="onSubmit()" >
和clearForm
函数是这样的:
clearForm(registrationFormGroup: FormGroup, registrationFormDirective: FormGroupDirective){
registrationFormDirective.resetForm();
registrationFormGroup.reset();
}
因为表单状态在FormGroupDirective中,而不在FormGroup中。