Используйте форму, представленную после проверки

Я хочу показать кнопку после того, как форма была отправлена, однако она выглядит как "Отправлено" и не false значение, если проверка не пройдена.

Мой счетчик является частичным

Это приводит к тому, что моя кнопка вращения отображается, несмотря на то, что ничего не отправлено, потому что форма отправлена, но не действительна.

Я что-то пропустил?

 <button class="btn btn-lg btn-primary" [ngClass]="extraClasses" type="button" [disabled]="form.submitted" type="submit">
 {{text}}
 <span *ngIf="form.submitted" class="spinner-border spinner-border-sm" 
role="status" aria-hidden="true"></span>
</button>

Нажмите "Отправить" без подробностей - проверка не пройдена, но все равно помечается как submitted

Проходящая проверка теперь показывает мой счетчик, но сразу (submitted правда, valid правда)

1 ответ

Ваша кнопка отправки будет отображаться, даже если форма недействительна, это нормально? Если нет, сделайте:

<button *ngIf="!form.submitted && !form.form.invalid" class="btn btn-lg btn-primary" [ngClass]="extraClasses"
  type="submit"> {{text}}</button>

РЕДАКТИРОВАТЬ:

Вы можете создать свойство в файле ts вашего компонента, например

private sumbitedWhenValid: boolean = false;

затем установите его, если форма действительна на момент отправки формы. Например, если у вас есть вызов http, в then():

...then(() => {
    ...
    this.sumbitedWhenValid = !this.form.form.invalid;
});

затем используйте его как условие для вашего блесна:

<button *ngIf="sumbitedWhenValid" class="btn btn-lg btn-primary" [ngClass]="extraClasses" type="button" disabled>
  {{text}}
  <span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
</button>
Другие вопросы по тегам