2011-06-21 26 views
1

我正在嘗試爲Drupal模塊創建一個過濾窗體,顯示幾小時。我試圖讓一個日期字段只顯示用戶是否想要過濾它。在隱藏的代碼中,我有一個文本字段。我不知道我該怎麼做。這裏是我對該領域的代碼:Drupal - #states可見選項不能使用日期類型

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

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

回答

2

您在示例中忘記了「容器」類型的表單元素。

嘗試這樣:

$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.'), 
); 

它總是值得檢查表格API參考:http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html/7#states

+0

感謝這解決了我的問題。 – Nick

相關問題