AngularJS 1.x: Как показать пользовательское сообщение в ng-pattern?

Я создаю форму и пытаюсь ввести следующую проверку пароля:

Минимум 8, минимум 1 заглавный алфавит, 1 строчный алфавит, 1 цифра и 1 специальный символ:

Используя следующий regrex:

"/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}/"

Код:

Password:<input type="text" name="pass" ng-model="password" ng-pattern="/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.{8,}$)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]/" required />
<span style="color:Red" ng-show="personForm.pass.$error.required"> Required! </span>
<span style="color:Red" ng-show="personForm.pass.$dirty&&personForm.pass.$error.pattern">Please Enter Valid Pass</span>

Теперь я хочу показать пользователю динамическое сообщение, когда он заполняет пароль. Например, если он заполнил прописные буквы, строчные буквы, специальный символ, но не заполнил число, я хочу показать, что "Пароль должен содержать число". Это возможно без нажатия на кнопку отправить? Или я должен сделать это по нажатию кнопки вместо?

2 ответа

Решение

Я не думаю, что вы можете сделать это, дать небольшое сообщение о вашей комбинации паролей и перевести кнопку отправки в отключенное состояние, пока ваш пароль не будет действительным.

Правильный ответ - использовать ngMessages. Смотрите здесь (начиная с версии 1.3, которая, как я понял, может быть слишком новой для этого поста).

Другие вопросы по тегам