#angular #angular-forms
#angular #angular-формы
Вопрос:
Мне нужно проверить форму создания пользователя. Я должен проверить электронную почту для 2 сценариев:
-
это необходимо
-
пользователь может получать электронную почту только из определенных доменов (например, только из gmail).
Для первого сценария мне нужно проверить «изменение», для второго сценария для события «размытие». Проблема в том, что я не могу проверить одно и то же поле для разных событий. По крайней мере, я не знаю, как это предполагается сделать. Мне нужно что-то вроде этого:
this.userForm = this.formBuilder.group({
email: new FormControl("", {validators: Validators.required, updateOn: "change"}),
email: new FormControl("", {validators: validateEmail, updateOn: "blur"}),
... // more fields
});
Есть идеи, как этого добиться?
Комментарии:
1. из angular docs, добавление нескольких (и, возможно, пользовательских) валидаторов
2. Да, но это для одного и того же события.
3. Я думаю, что вы можете «пропустить» Validators.required и имитировать «вручную» эту проверку как
<div *ngIf="!formBuilder.get('email').value">Required</div>
4. Можете ли вы указать какой-либо сценарий, в котором вам нужно применить эти несколько событий в одном поле?
5. У меня такая же проблема. Я хочу один валидатор при наборе текста и один после размытия.