У меня есть Ionic 3 App , где я использую formBuilder для всех моих форм в App . Я создал специальный валидатор, который не разрешал бы пробелы в поле ввода email в некоторых формах .
Сначала я покажу код, затем объясню его после каждого блока кода.
Вот мой код в пользовательской функции проверки
noSpaceValidator(control: FormControl) {
let isWhitespace = control.value.includes(" ");
let isValid = !isWhitespace;
return isValid ? null : { 'spaces': true }
}
Таким образом, функция очень проста, если значение включает пробелы . Это не позволит форме быть действительной и отображать какое-то сообщение об ошибке, которое я создал.
Теперь в моем формеBililder ниже
email: [
"",
Validators.compose([
Validators.pattern(EMAIL_REGEX),
Validators.required,
this.noSpaceValidator
])
],
Я вызвал функцию noSpacesValidator
, которая работает нормально, но только в виде text .
По моему html
<ion-input type="email" formControlName="email">
Это очень просто html , но при использовании типа email возникает небольшая проблема. При использовании типа email функция noSpaceValidator
по-прежнему вызывается, но не возвращает пользовательский валидатор. Но когда я пытаюсь заменить его на type="text"
, он возвращает специальный валидатор.
Я хотел работать с электронной почтой , так как я создаю мобильное приложение , поэтому оно всегда будет предлагать кэшированных писем на устройстве Android и для функции автозаполнения напишите .
Цените, если кто-то может помочь.
Заранее спасибо.