【发布时间】:2012-06-14 23:02:45
【问题描述】:
背景:在 Drupal 7 中,我使用 CCK(又名 Field UI)创建了一个表单。我使用Field group 模块创建了一个字段组,但我需要它是有条件的,这意味着它只会根据之前的答案显示。
以往研究:要创建条件字段,可以使用hook_form_alter() 编辑#states 属性,如下所示:
function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'person_info_node_form') {
// Display 'field_maiden_name' only if married
$form['field_maiden_name']['#states'] = array(
'visible' => array(
':input[name="field_married[und]"]' => array('value' => 'Yes'),
),
);
}
}
但是,似乎无法将 States API 用于字段组。需要注意的一点是,虽然字段存储在 $form 中,但字段组存储在 $form['#groups'] 和 $form['#fieldgroups'] 中。我不知道如何区分这些,考虑到这一点,我尝试以与上述相同的方式将#states 属性应用于字段组。但是,它只会产生服务器错误。
问题:有没有办法使用 States API 或其他方法有条件地显示字段组?
【问题讨论】: