SaveLolliPoP
@SaveLolliPoP
1 / 0 = ∞

Как в angular проверить FormControl на валидность из функции?

Есть такая группа:
this.OfferControl = this.fb.group({
      leadLink: this.LeadControl.get('leadId').value,
      area: ['', Validators.required],
      regular: ['', Validators.required],
      time: '',
      details: this.fb.group({
        fot: ['', Validators.required],
        managerWage: ['', Validators.required],
        tinkoffCommission: ['', Validators.required],
        windowFond: ['', Validators.required],
        material: ['', Validators.required],
        profit: ['', Validators.required],
        itog: ['', Validators.required],
        itogMaterial: ['', Validators.required],
      })
    });


Мне нужно при нажатии на кнопку, которая хранится вне формы:
<form [formGroup]="OfferControl">
......
</form>

<button (click)="some()">Действия</button>

Запустить функцию some() и сделать валидацию этой группы, то есть, если есть ошибка, то выделить красным то, где пусто (Как в моем примере).
if (this.OfferControl.valid) {
...
}


Такой вариант просто проверяет, если все ок выполняет дальнейшие действия, но не выделяет незаполненные поля.
  • Вопрос задан
  • 337 просмотров
Пригласить эксперта
Ответы на вопрос 1
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
valid и hasError есть не только у всей группы, но и у каждого поля.
Чтобы выделить поле красным - создаешь условный аттрибут класса по valid этого поля.
например для area
[class.error]="!OfferControl.get('area').valid"
и тогда элемент получит класс error когда станет невалиден.
А еще там стандартные классы вешаются, откройте форму в девтулзах и посмотрите как она меняется.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы