Come posso visualizzare un elemento solo se è stato selezionato un valore da un campo di selezione dell'entità?

Aug 20 2020

Ho un campo su un modulo web (Drupal 8) che dovrebbe essere visualizzato solo quando un utente ha selezionato una o più opzioni da un campo di selezione dell'entità indipendentemente dalle opzioni selezionate.

Le opzioni logiche condizionali disponibili nel webform non sembrano includere tale stato. Ho cercato online e esaminato example_element_states.yml nel modulo webform e tutti gli esempi correlati selezionati specificano un particolare valore di opzione come logica condizionale.

Qualcuno ha riscontrato e risolto questo problema?

Risposte

3 leymannx Aug 20 2020 at 04:06

Fatto! Devi verificare la presenza di un valore maggiore di 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'

Immagino che in PHP debba essere:

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