Conditional Form Fields в Drupal

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

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

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

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

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

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

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

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

Написать комментарий

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

Настраиваем стили в CKEditor / Drupal 9

Сентябрь 11, 2021 г.

Чтобы расширить инструментарий контентщика, обычно в редактор добавляются новые стили. Это позволяет контент-менеджеру на ряду с форматированием, использовать ...

Читать

Как в Drupal 9 получить URL изображения, сохраненного в поле media

Июль 27, 2021 г.

Чтобы извлечь адрес изображения из картинки в поле типа media, требуется ряд преобразований с использованием Entity объектов Drupal. Предполагается, что вы уже загрузили entity с полем типа media (в примере называется - field_media) в какую то ...

Читать

 

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

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



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