Angular material 提交后重置表格
Angular material reset form after submit
我使用 angular material 并且我有一个带有反应式验证的表单。
我想在提交后重置我的表单,我的问题是在提交后我看到我的错误出现在表单中。
输入示例:
<mat-form-field>
<mat-label>Prénom</mat-label>
<input matInput name="prenom" formControlName="prenom">
<mat-error *ngIf="f.prenom.hasError('required') && submitted">
Ce champ est obligatoire
</mat-error>
<mat-error *ngIf="f.prenom.errors?.maxlength && !f.prenom.hasError('required')">
le prénom ne peut pas dépasser 20 caractères
</mat-error>
</mat-form-field>
我尝试添加一个已提交的变量和 this.myForm.markAsUntouched() 但不起作用
onSubmit() {
this.submitted = true;
if (this.myForm.invalid) {
return;
}
alert('Form Submitted succesfully!!!\n Check the values in browser console.');
console.table(this.myForm.value);
this.submitted = false;
this.myForm.reset();
this.myForm.markAsUntouched();
}
使用提交的变量,我看到消息错误消失了(下面的黄色部分),但边框和红色没有消失。
你们有什么解决办法吗?
我可以通过将#formDirective="ngForm" 放在表单标签中来解决这个问题
<form [formGroup]="myForm" (ngSubmit)="onSubmit()" #formDirective="ngForm">
并声明
@ViewChild('formDirective') private formDirective: NgForm;
然后您可以输入 .resetForm()
我使用 angular material 并且我有一个带有反应式验证的表单。
我想在提交后重置我的表单,我的问题是在提交后我看到我的错误出现在表单中。
输入示例:
<mat-form-field>
<mat-label>Prénom</mat-label>
<input matInput name="prenom" formControlName="prenom">
<mat-error *ngIf="f.prenom.hasError('required') && submitted">
Ce champ est obligatoire
</mat-error>
<mat-error *ngIf="f.prenom.errors?.maxlength && !f.prenom.hasError('required')">
le prénom ne peut pas dépasser 20 caractères
</mat-error>
</mat-form-field>
我尝试添加一个已提交的变量和 this.myForm.markAsUntouched() 但不起作用
onSubmit() {
this.submitted = true;
if (this.myForm.invalid) {
return;
}
alert('Form Submitted succesfully!!!\n Check the values in browser console.');
console.table(this.myForm.value);
this.submitted = false;
this.myForm.reset();
this.myForm.markAsUntouched();
}
使用提交的变量,我看到消息错误消失了(下面的黄色部分),但边框和红色没有消失。
你们有什么解决办法吗?
我可以通过将#formDirective="ngForm" 放在表单标签中来解决这个问题
<form [formGroup]="myForm" (ngSubmit)="onSubmit()" #formDirective="ngForm">
并声明
@ViewChild('formDirective') private formDirective: NgForm;
然后您可以输入 .resetForm()