2014-02-27 25 views
0

我正試圖在自定義結帳窗格中添加有條件顯示的字段集。與標準形式不同,字段始終顯示,無論狀態如何。Drupal Commerce自定義結帳窗格狀態不按預期方式工作

例如,在下面的代碼中,我希望基於「飢餓」單選按鈕的值顯示「hungry_fields」字段集。

function hungry_pane_checkout_form($form, &$form_state, $checkout_pane, $order) { 

    $pane_form['hungry'] = array(
    '#type' => 'radios', 
    '#options' => array('yes' => t('Yes'), 'no' => t('No')), 
    '#required' => TRUE, 
    '#title' => t('I am hungry') 
); 

    $pane_form['hungry_fields'] = array(
    '#title' => 'Hungry', 
    '#type' => 'fieldset', 
    '#collapsible' => FALSE, 
    '#collapsed' => FALSE, 
    '#states' => array(
     'visible' => array(
     ':input[name="hungry"]' => array('value' => 'yes'), 
    ), 
    ), 
); 

    return $pane_form; 

} 

我是新來的Drupal商務部所以這是完全有可能的,我失去了一些東西。

回答

1

我通過使用帶有drupal_get_form()的表單回調來解決此問題,而不是直接將字段添加到數組。

例如:

function hungry_pane_checkout_form($form, &$form_state, $checkout_pane, $order) { 

    $pane_form['form'] = drupal_get_form('hungry_form'); 

} 

function hungry_form($form, &$form_state) { 
    ... 
} 

使用這種方法的形式正常工作。