开发者

Drupal - #states visible option not working with the date type

I am trying to create a filtering form for a Drupal module that show hours. I am trying to get a date field to only show if the user wants to filter by it. I have a text field further down in the code that is hiding. I am not sure what I should do. Here is my code for the field:

$form['filters']['start-do'] = array(
    '#type' => 'checkbox',
    '#title' => t('Filter by start date'),
);

$form['filters']['start'] = array(
    '#type' => 'date',
    '#title' =&开发者_JAVA技巧gt; t('Start Date'),
    '#description' => t('Show hours that started after this date.'),
    '#states' => array(
        'invisible' => array(
            ':input[name="start-do"]' => array('checked' => FALSE) 
        )    
    )
);


You have forgotten about "container" type form element in your example.

Try something like this:

$form['filters']['start-do'] = array(
  '#type' => 'checkbox',
  '#title' => t('Filter by start date'),
);
$form['filters']['container'] = array(
  '#type' => 'container',
  '#states' => array(
    'invisible' => array(
      'input[name="start-do"]' => array('checked' => FALSE)
    )
  )
);
$form['filters']['container']['start'] = array(
  '#type' => 'date',
  '#title' => t('Start Date'),
  '#description' => t('Show hours that started after this date.'),
);

It's always worth to check Forms API reference: http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html/7#states

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜