Я учусь Angular Форма. здесь простая форма, имеет поля ename / job / sal, ename / job обязательны. ДО того, как я отправлю, когда я ввожу значения, валидаторы работают нормально, а функция очистки также хорошо стирает заполненный текст. НО, ПОСЛЕ того, как я нажимаю на кнопку «Отправить» (которая вызывает empForm.reset ()), обязательные поля помечены красным цветом - ошибка недопустимых полей, кнопка «Очистить» также не может удалить красный цвет, я думаю, что это не разумное поведение. Я хочу только после отправки, все поля остаются без проверки красной метки. как этого добиться, спасибо.
Спасибо и привет, Мартин.
<form [formGroup]="empForm" (ngSubmit)="onSubmit()">
<div class="fields-container">
<mat-form-field>
<input formControlName="ename" matInput placeholder=Ename>
<mat-error *ngIf="empForm.controls['ename'].errors?.required">Ename is required.</mat-error>
</mat-form-field>
<mat-form-field>
<input formControlName="job" matInput placeholder=Job>
<mat-error *ngIf="empForm.controls['job'].errors?.required">Job is required.</mat-error>
</mat-form-field>
<mat-form-field>
<input formControlName="sal" matInput placeholder=Salary>
</mat-form-field>
</div>
<div class="buttons-container">
<button mat-raised-button type="submit" [disabled]="empForm.invalid">Submit</button>
<button mat-raised-button type="button" (click)="onClear()">Clear</button>
</div>
</form>
import { Component, OnInit } from '@angular/core';
import { FormBuilder, Validators } from '@angular/forms';
@Component({
selector: 'app-emp',
templateUrl: './emp.component.html',
styleUrls: ['./emp.component.scss']
})
export class EmpComponent implements OnInit {
empForm;
constructor(private fb: FormBuilder) {
this.empForm = this.fb.group({
ename: ['', Validators.required],
job: ['', Validators.required],
sal: [1000]
})
}
ngOnInit(): void {
}
onSubmit(){
// save to db - TBD
this.empForm.reset();
}
onClear(){
this.empForm.reset();
}
}