Угловые сообщения проверки появляются после формы reset () - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь получить чистую форму без сообщений об ошибках проверки после вызова reset().

моя форма выглядит чистой при загрузке, и это ожидается: form as when the page loaded, no validation errorsоднако, если пользователь нажал кнопку регистрации и произошла ошибка, я запускаю метод form.reset().Я ожидаю, что форма будет выглядеть как на картинке выше, поскольку сенсорный, чистый, грязный реквизит - все как при первоначальной загрузке формы.но вместо этого он очищает значения, но показывает ошибку проверки.form with validation errors Кто-нибудь может мне помочь, пожалуйста, приведите его в исходное состояние, появится четкая форма без ошибок проверки?Это реактивная форма.дайте мне знать, если вам нужно больше информации.Спасибо!

Ответы [ 3 ]

0 голосов
/ 26 ноября 2018

Похоже, вы используете угловые материалы.Если это так, вы также должны сбросить FormGroupDirective, только сброса FormGroup недостаточно.

private registerForm(fData: any,formDirective: FormGroupDirective): void {
    formDirective.resetForm();
    this.RegForm.reset();
}

<form [formGroup]="RegForm" #formDirective="ngForm" 
   (ngSubmit)="registerForm(RegForm,formDirective)">
0 голосов
/ 02 июня 2019
static resetForm(formGroup: FormGroup) {
    let control: AbstractControl = null;
    formGroup.reset();
    formGroup.markAsUntouched();
    Object.keys(formGroup.controls).forEach((name) => {
      control = formGroup.controls[name];
      control.setErrors(null);
    });
  }
0 голосов
/ 26 ноября 2018

Вы используете что-то подобное?

// Reactive Form

constructor(private _builder:FormBuilder) {
    this.createForm();
}

createForm() {
    this.form = this._builder.group({
        key: this.value,
    });
}

// Option 1
resetForm() {
    this.form.reset();
}

// Option 2 - create form again
resetForm() {
    this.createForm()
}

// Template Form

---- HTML ----
<form #myForm="ngForm"></form>

---- TS ----
@ViewChild('myForm') myForm;

resetForm() {
   if (this.myForm) {
      this.myForm.reset();
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...