2011-06-21 9 views
1

時間を示すDrupalモジュール用のフィルタリングフォームを作成しようとしています。私はユーザーがそれによってフィルタリングしたい場合にのみ表示する日付フィールドを取得しようとしています。私は隠れているコードのテキストフィールドをさらに下に持っています。私は何をすべきかわからない。ここでは、フィールドのための私のコードは次のとおりです。Drupal - #states visibleオプションが日付タイプで動作しない

$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

関連する問題