Как я могу отобразить элемент только в том случае, если какое-либо значение было выбрано из поля выбора объекта?

Aug 20 2020

У меня есть поле в веб-форме (Drupal 8), которое должно отображаться только тогда, когда пользователь выбрал один или несколько параметров из поля выбора объекта, независимо от того, какие параметры выбраны.

Доступные параметры условной логики в веб-форме, похоже, не включают такое состояние. Я поискал в Интернете и просмотрел example_element_states.yml в модуле веб-формы, и все выбранные связанные примеры указывают конкретное значение параметра в качестве условной логики.

Кто-нибудь сталкивался и решал такую ​​проблему?

Ответы

3 leymannx Aug 20 2020 at 04:06

Понял! Вам нужно проверить значение больше 0. 🤷

user:
  '#type': webform_entity_select
  '#title': User
  '#multiple': true
  '#target_type': user
  '#selection_handler': 'default:user'
  '#selection_settings':
    include_anonymous: false
    filter:
      type: _none
text:
  '#type': textfield
  '#title': Text
  '#states':
    visible:
      ':input[name="user[]"]':
        value:
          greater: '0'

Я предполагаю, что в PHP это должно быть:

$form['text']['#states'] = [
  'visible' => [
    ':input[name="user[]"]' => [
      'value' => [
        'greater' => "0",
      ]
    ]
  ]
];