我正在使用angular 6应用程序。我正在使用FormBuilder。我有一个看起来像这样的表格:
hive-import
这是一种非常简单的形式。文本输入和提交按钮:
如您所见,我在输入下出现错误提示,告诉用户“如果未输入邀请,则需要邀请评论”。
当用户点击“提交”时,邀请被发送,我将清除表单,如下所示:
<form [formGroup]="createInvitationForm" (ngSubmit)="createInvitation()">
<mat-form-field class="full-width-input">
<input matInput type="text" formControlName="invitationComment" placeholder="Send a comment to the group(s)." required>
<mat-error *ngIf="createInvitationForm.get('invitationComment').hasError('required')">
Invitation comment required
</mat-error>
</mat-form-field>
<button mat-raised-button type="submit" color="primary" [disabled]="selectedGroups.length === 0 || !createInvitationForm.valid">Send invitation to selected group(s)</button>
</form>
但是,当我这样做时,表单看起来像这样:
换句话说,现在显示验证错误。
从某种意义上说,mat-error正在执行应做的事情:重置表单时,文本输入中没有数据,这会使表单无效,因此显示消息。但是从另一种意义上讲,它不应该表现为好像被重新初始化一样(即,表单在输入时就不会因为文本输入中没有数据而无效)。
如果我对reset()应该如何工作的期望落空了,请让我知道一种在不使表单无效的情况下重置表单的方法。
谢谢。
答案 0 :(得分:0)
尝试添加以下部分this.createInvitationForm.setErrors(null);
以重置表单控件的错误。
答案 1 :(得分:0)
惊悚片已经关闭。
是this.createInvitationForm.controls ['invitationComment']。setErrors(null);