Пользовательский валидатор Angular Ionic 3 не работает с типом электронной почты, но работает с типом текста - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть 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 и для функции автозаполнения напишите .

Цените, если кто-то может помочь. Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...