Conditional Form Fields в Drupal

Логика полей или условные поля — это удобная фича в Form API друпал. Она позволяет формализовать кучу мелкой логики на фронт-енд, связанной с взаимодействием пользователя с вашей формой.

Здесь я приведу пару примеров использования, а углубиться в подробности поможет документация.

Пример 1 — кнопка сабмит не активна, пока пользователь не заполнил поле заголовка статьи

Есть разные подходы к проверке обязательных полей. Вы можете позволить отправить данные и потом вернуть пользователю форму с ошибками. Вы можете осуществить проверку заполнения полей при нажатии сабмита, но не отправлять данные. Ну и третий способ — просто сделать кнопку сабмита не активной, если обязательное полей не заполнено.

Важно, чтобы пользователь при этом визуально различал enabled и disabled состояния кнопки.

В следующем примере я делаю неактивным сабмит у формы добавления нового топика форума, до тех пор, пока пользователь не введет заголовок:

Пример 2 — Прячем поле ввода альтернативного варианта

Классическая UI задача, когда форма предлагает опции из списка, и один из вариантов — «прочее». При этом пользователь может ввести альтернативный вариант в дополнительное поле. Задача заключается в том, чтобы не показывать доп. поле, пока пользователь не выберет в списке — прочее.

Мало букафф? Читайте есчо !

Drupal Commerce - расчет доставки для выбранного района

Август 26, 2021 г.

Есть список районов города, доставка в которые имеет фиксированную ставку. Пользователь выбирает район - программа должна подставить цену доставки для ...

Читать

Theme image в Drupal 9

Август 3, 2021 г.

Смотрим как выполнить рендеринг файла-картинки в Drupal 9 программно. Есть FID, и требуется рендерить этот файл программно в шаблоне <IMG>. Для этого нам понадобится воспользоваться сервисом ядра - renderer. [crayon-68cafb8f6c124995406702/] ...

Читать

Создаём программно url alias в Drupal 9

Август 28, 2021 г.

Сниппет кода, демонстрирующий как alias создаётся в Drupal 9. Ранее (в 8й версии) это был сервис ядра path.alias_storage, и код выглядел так: [crayon-68cafb8f6c219977228249/] В 9й версии хранилище перенесли в entityTypeManager и потому выглядит ...

Читать

Error Code 1366 of Mysql при записи переводов в базу tmgmt_deepl

Октябрь 4, 2024 г.

Типично ошибка 1366 связана с тем, что кто то пытается записать символы с кодами не соответствующими кодовой таблице символов, установленной для таблицы в базе данных. Но в нашем случае речь идет о иной проблеме. Drupal использует utf8mb4 для текстовых ...

Читать
 

Комментарии к «Conditional Form Fields в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: