В валидации формы есть такая замечательная функция drupal_set_message, которая выводит сообщение об ошибке, выводя текст у некорректного поля. А как поступить, если я хочу перейти и сменить стиль этого поля, чтобы его выделить его красным? Иными словами, как изменить стиль поля с ошибкой?
Комментарии
myThemeOrMymodule_preprocess_status_messages(&$variables) ...
через шаблон https://api.drupal.org/api/drupal/8.3.x/search/status-messages шаблон скопировать в свою тему изменить и сбросить кеши
В Друпале8 есть такие файлы. Нужны все 4 файла? Все 4 перенести в тему?
core/modules/system/templates/status-messages.html.twig
drupal_set_message($message = NULL, $type = 'status', $repeat = TRUE)
string $type: (optional) The message's type. Defaults to 'status'. These values are supported:
'status'
'warning'
'error'
Если стилизовать вам надо то в CSS,
Если темизировать то так как советуют выше
Поигрался со status-messages.html.twig. Этот шаблон стилизует сообщение об ошибке, но не само поле, на котором произошла ошибка.
Допустим, в поле регистрации я не ввел обязательное поле. Форма меня возвращает к нему, высвечивая подсказку "Заполните это поле". Мне не нужна эта подсказка. Мне надо изменить стиль самого поля с ошибкой и показать свой блок с сообщением. Как это сделать?
У меня для вас плохие новости - это нативное поведение браузеров. Хорошие новости - теоретически достаточно убрать атрибут required у поля, и усё будет нормуль
Я правильно понимаю ход мысли, что в таком случае проверку ввода самого поля добавить в вализацию формы? И так для всех полей...
Но вопрос остается... Как мне в таком изменить стиль самого поля, когда ошибка будет выявлена?
Как вариант можно добавить свою функцию валидация и при ошибке делать все что вам угодно.
Ещё один вариант могу предположить что вы путаете drupal-set-message с form-set-error, который в Д8 теперь изменённые . Взгляните на эту страницу с изменениями, где вы найдёте примеры реализации
Спасибо! Попробую раскурить!