gpt4 book ai didi

javascript - 提交后 Angular Material 重置表单

转载 作者:行者123 更新时间:2023-12-02 19:37:01 24 4
gpt4 key购买 nike

我使用 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();
}

使用提交的变量,我看到消息错误消失(下面的黄色部分),但边框和红色没有消失。

enter image description here

你们有什么想法来解决这个问题吗?

最佳答案

我可以通过将#formDirective="ngForm"放入表单标签来解决这个问题

<form [formGroup]="myForm" (ngSubmit)="onSubmit()" #formDirective="ngForm">

并声明

@ViewChild('formDirective') private formDirective: NgForm;

然后你可以输入.resetForm()

关于javascript - 提交后 Angular Material 重置表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60907776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com