Проверка формы углов, как показать сообщение об ошибке при отправке - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть форма:

<form [formGroup]="editProfileForm">
    <input type="text" id="name" class="form-control" placeholder="First" formControlName="firstName [(ngModel)]="profileDetails.first_name">
    <small class="text-danger" [hidden]="editProfileForm.controls['firstName'].valid || (editProfileForm.controls['firstName'].pristine && !submitted)">First name Required</small>
    <input type="text" class="form-control" placeholder="Last" formControlName="lastName" [(ngModel)]="profileDetails.last_name">
    <small class="text-danger" [hidden]="editProfileForm.controls['lastName'].valid || (editProfileForm.controls['lastName'].pristine && !submitted)">Last name Required</small>
    <button class="save-changes-btn" [disabled]="(!editProfileForm.valid)" (click)="saveDetails();">Save Changes</button>
</form>

и editProfile определяется в файле компонента как

this.editProfileForm = this.formBuilder.group({
    firstName: [_.get(this.profileDetails, 'first_name', ''), Validators.required],
    lastName: [_.get(this.profileDetails, 'last_name', ''), Validators.required],
});

Теперь мне нужно показать подтверждающие сообщения при нажатии кнопки отправки. Здесь сейчас я отключил кнопку отправки, если форма недействительна. Но он не будет отображать сообщения об ошибках рядом с соответствующими полями, и это заставит пользователя думать, что ничего не происходит. Как я могу вызвать сообщения об ошибках для отображения рядом с соответствующими полями ввода?

1 Ответ

0 голосов
/ 10 сентября 2018

Вы можете сделать что-то вроде этого.

Сначала удалите логику отключения в кнопке отправки.

В шаблоне компонента.

<form [formGroup]="editProfileForm" (ngSubmit)="onSubmit()">
  <div class="form-group block" [ngClass]="{'has-error': submitted && (editProfileForm.controls.firstName.errors)}">
    <label>Email</label>
    <input type="text" class="form-control" formControlName="firstName">
    <p>
      <span *ngIf="submitted && editProfileForm.controls.firstName.errors?.required">First name is required</span>
    </p>
  </div>

  // other controls
</form>

В классе компонентов

public onSubmit(): void {
  this.submitted = true;
  if(!this.editProfileForm.valid) {
    return;
  }

  // make the submitted variable false when submission is completed.

}

Вы можете удалить следующую часть, если вам нужно.

[ngClass]="{'has-error': submitted && (editProfileForm.controls.firstName.errors)}"

Он добавит класс css к элементу, когда элемент управления формы недопустим и отправлен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...