Вы также можете использовать регулярное выражение для поля электронной почты, что-то вроде этого, во входном теге
<input type="email" class="form-control info" placeholder="Email" formControlName="email" (ngModelChange)="onChange($event)">
таким образом вы вызываете функцию каждый раз, когда пользователь вводит текст внутри, а затем в своем файле Ts вы объявляете функцию, которую вы помещаете внутри тега ввода, в свой HTML
onChange(newValue) {
const validEmailRegEx = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
if (validEmailRegEx.test(newValue)) {
this.validEmail = true;
}else {
this.validEmail = false;
}
}
Только не забудьте объявить переменную validEmail
в верхней части вашего файла
validEmail:boolean = false
константа validEmail
- это место, где вы объявляете выражение regex, то, которое я положил, действительно полезно для проверки электронной почты, метод test
- это место, где вы сравниваете выражение со строкой, метод возвращает true or false
После этого в вашем html-теге кнопки происходит что-то вроде этого.
<button type="submit" class="btn btn-primary btn-block logBtn" [disabled]="!validEmail">ACCEDER</button>
Мне нравится этот способ, потому что я могу иметь полный контроль над тем, что я хочу в каждом входном теге