169 похожих чатов

Добрый день. Как я могу отметить все контроллы как нажатые?

this.form.MarkAllAsTouched() не срабатывает.

22 ответов

38 просмотров

Нажатые - это dirty?

Adam-Abdulaev Автор вопроса
Ekaterina
Нажатые - это dirty?

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

for (const control in this.form.controls) { if (Object.prototype.hasOwnProperty.call(this.form.controls, control)) { this.form.controls[control].markAsDirty(); this.form.controls[control].updateValueAndValidity(); } }

Adam-Abdulaev Автор вопроса
Andrew (ノಠ益ಠ)ノ彡┻━┻
for (const control in this.form.controls) { ...

а formArray воспринимается как controls?

Adam Abdulaev
а formArray воспринимается как controls?

нет, это массив контролов, который тоже нужно в цикле прогнать

Adam Abdulaev
а formArray воспринимается как controls?

если завернуть в ControlValueAccessor то - да. но по факту для рутовой формы этот formArray будет уже пофиг

Adam Abdulaev
да, я хочу чтобы при нажатии на кнопку отправки фо...

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

Adam Abdulaev
да, я хочу чтобы при нажатии на кнопку отправки фо...

Посмотри классы цсс на контролах. И ЦССом подсвечивай

Adam-Abdulaev Автор вопроса
Andrei
Посмотри классы цсс на контролах. И ЦССом подсвечи...

они у меня подсвечиваются, если я нажимаю и выхожу с инпута ничего не введя. Задача все пустые одновременно подсветить.

Adam Abdulaev
да, я хочу чтобы при нажатии на кнопку отправки фо...

ng-untouched ng-pristine ng-invalid при клике вешаем цсс класс submited и .ng-untouched.ng-pristine.ng-invalid.submited траляля

Egor Платонов
А не легче сделать кнопку недоступной к нажатию по...

У такого подхода есть пара минусов 1) Раз нет триггера в виде submit (он задизейблен), то сообщения должны быть на экране сразу 1.1) Ок, если они какие-то серые и не делают из формы одно красное большое пятно, сообщающее пользователю, что он уже дурак и накосячил, что-то не заполнил (он мог еще даже не начать это делать) 1.2) Если валидаторов будет много, то по каждому валидатору каждого поля нужно подсказку писать прям на экране, что может быть неудобно 2) Если форма в размерах большая, некоторые поля могут не поместиться на экране. Наличие триггера submit может инициировать прокрутку к, например, первому невалидному полю, что куда удобнее, чем если б пользователь самостоятельно искал невалидные поля 2.1) Если у полей есть тултипы, то триггер может у первого невалидного раскрыть тултип, что избавит от необходимости держать сообщения на экране Я поддерживаю подход с задизейбленным submit только в том случае, если форма совсем маленькая, например, логин-пароль, когда поля вот прям здесь и накосячить можно либо в первом, либо во втором Если форма больше 5-6 полей, то имхо лучше не дизейблить и сделать нормальную конструкцию с анализом и корректной валидацией полей по нажатию на submit. Пользователи вам спасибо скажут

Alex Bu
У такого подхода есть пара минусов 1) Раз нет три...

Нет. Сообщения выводить под полем только после того как оно неактивным будет.

Egor Платонов
Нет. Сообщения выводить под полем только после тог...

Я зашел на форму, там 20 полей и кнопка задизейблена, мои действия? Тыкать в каждое, чтобы читать у них сообщения?

Alex Bu
Я зашел на форму, там 20 полей и кнопка задизейбле...

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

Egor Платонов
Для начала форму заполнить. По мере заполнения есл...

Я зашел на форму, там 200 полей, одно обязательное для заполнения, остальные - нет и я даже не понимаю их лейблы и суть. Кнопка задизейблена. Мои действия? Жмякаю таб, пока не высветится обязательное?

Egor Платонов
Это крайность 😁таких форм не бывает

Да ну, уф. Тут не про саму форму вопрос, а про механику и удобство

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта