Does #states in formElement doesn’t work the same way it does in buildForm ? I have a field widget where I have a Form for the widget which has a #states in a container. But it’s not working whereas the same code works perfectly fine in a custom form.

   * {@inheritdoc}
public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {

$form['needs_accommodation'] = array(
 '#type' => 'checkbox',
 '#title' => $this->t('Need Special Accommodations?'),
$form['accommodation'] = array(
  '#type' => 'container',
  '#attributes' => array(
    'class' => 'accommodation',
  '#states' => array(
    'invisible' => array(
      'input[name="needs_accommodation"]' => array('checked' => FALSE),

$form['accommodation']['diet'] = array(
  '#type' => 'textfield',
  '#title' => $this->t('Dietary Restrictions'),


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.