Привет, верно - это вариант - но после тестирования ... это не совсем то, что я хотел. Я обновил текст выше. Теперь проблема в том, что вы не получаете никакой обратной связи, если вы покидаете поле, щелкая снаружи / нажимая вкладку ...

аюсь создать небольшую форму с проверкой внутри модального диалога. Диалог имеет кнопку отмены, которая должна скрыть диалог:

Я создал небольшой проект, чтобы проверить это:

https://embed.plnkr.co/jF202JGxI0f7BjeKhL7A/

Поле имени имеет проверку, которая срабатывает, если имя оставлено пустым. Поле ввода получает фокус, когда отображается диалоговое окно.

Теперь проблема заключается в нажатии кнопки отмены без ввода текста.

Проверка запускается до запуска обработчика нажатия кнопки. В результате отображается сообщение об ошибке. Это перемещает кнопку отмены вниз, и щелчок переходит в нирвану.

Вы можете проверить это поведение, нажав верхнюю часть кнопки отмены. Если щелкнуть нижнюю часть, все работает как положено (за исключением того, что я предпочел бы вообще не показывать сообщение проверки).

Итак ... что бы я хотел иметь:

Проверка запуска, если пользователь

покидает поле нажатием вкладкинажимает на следующее поле (в каком-то другом диалоге с дополнительными полями)нажимает на ОК / создать метрикуизменяет содержимое поля

Не активировать проверку, если пользователь

нажимает на отменущелкает за пределами диалога
 rmcsharry01 февр. 2018 г., 13:00
У меня точно такая же проблема. Я пытался сделать type = "reset" и type = "button" на кнопке Cancel, но это не решает проблему. Проблема в том, что проверки запускаются по событию размытия поля ДО запуска обработчика щелчка для кнопки «Отмена».
 rmcsharry01 февр. 2018 г., 12:57
Подобный вопрос показывает, что это может происходить в любой форме, а не только внутри модальной:stackoverflow.com/questions/45015403/...

Ответы на вопрос(1)

Касаемое свойство срабатывает при посещении ввода. Свойство dirty запускается, когда ввод был изменен.

Поэтому вам нужно удалить затронутое условие, попробуйте заменить код метки ошибки следующим образом:

<label *ngIf="myForm.controls.name.errors && myForm.controls.name.dirty">

Вы можете узнать больше о формах в официальной документации:https://angular.io/guide/forms

 Andreas Löw25 сент. 2017 г., 20:49
Привет, верно - это вариант - но после тестирования ... это не совсем то, что я хотел. Я обновил текст выше. Теперь проблема в том, что вы не получаете никакой обратной связи, если вы покидаете поле, щелкая снаружи / нажимая вкладку ...

Ваш ответ на вопрос