我正在尝试在自定义结帐窗格中添加有条件显示的字段集。无论状态如何,都会始终显示字段集,与标准表单不同。
例如,在下面的代码中,我希望根据“饥饿”单选按钮的值显示“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 Commerce的新手,所以我完全有可能错过了一些东西。
答案 0 :(得分: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) {
...
}
使用此方法,表单可以正常工作。