Я создал сущность с формой «Добавить новый». Сам объект имеет ограниченное количество фактических переменных. Я добавил большую часть дополнительных данных, которые мне нужны, используя пользовательские поля (например, API полей).
На этом этапе мне нужно иметь возможность динамически скрывать одно поле в зависимости от значения другого. т. е. если для раскрывающегося поля установлено значение Нет, другое поле должно быть скрыто, в противном случае оно должно отображаться.
Из того, что я вижу, несколько проще добавить эту функциональность в поля, созданные с помощью API-формы (т. Е. Через свойство AJAX), однако есть ли способ добиться этого с помощью прикрепленных полей? У меня нет проблем с использованием пользовательского Javascript, если это то, что требуется для решения этой проблемы.
Ответы:
JQuery хорошо работает для этого:
источник
В Drupal 7 вы можете использовать $ form
#states
вместо пользовательского скрипта jQuery. Пример:Вот пример, если вы хотите использовать
#states
для условия нескольких значений:Смотрите модуль
form_example/form_example_states.inc
from examples для более подробной информации и примеров.источник
#states
, что я никогда не нашел способ определить более сложные условия видимости, такие как: скрыть элемент управления A, когда значение элемента управления B находится в массиве (x, y, z). Вы знаете синтаксис для этого?Вы должны попробовать условные поля , я думаю, что этот модуль является обязательным для этой задачи. Вы можете установить зависимости между полями в удобном интерфейсе администратора. Например, вы можете установить
A
поле видимым только в том случае, еслиB
поле имеет значение « 1234 », или вы можете установитьC
текстовое поле таким, чтобы оно было видимым только при установленномD
поле, или установитьE
поле в невидимое, еслиF
оно сфокусировано и т. Д.В форме загрузки эти зависимости будут установлены на стороне клиента, на дисплее узла эти зависимости будут установлены на стороне сервера.
Вы можете установить эти зависимости в
admin/structure/types/manage/[YOURCONTENTTYPESMACHINENAME]/dependencies
.(Источник изображения: страница проекта )
источник