背景:在Drupal 7中,我创建了一个带有CCK(即字段UI)的表单。我使用Field group模块来创建一个fieldgroup,但我需要它是有条件的,这意味着它将只显示取决于以前的答案。Drupal 7中的条件字段组/字段集
以前的研究:要创建一个条件字段,您可以使用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'),
),
);
}
}
然而,似乎没有办法使用FIELDGROUPS的美国API。需要注意的一点是,虽然字段存储在$form
中,但字段组存储在$form['#groups']
以及$form['#fieldgroups']
中。我不知道如何区分它们,考虑到这一点,我尝试以与上述相同的方式将#states属性应用于字段组。但是,它只会产生服务器错误。
问题:有没有办法使State API有条件地使用States API或其他方法来显示?
谢谢你的提示。我并没有真正结束,因为我终于找到了一些工作。如果您有兴趣,请查看发布的解决方案。 – seane