我有一个名为field_apply的Profile2创建的复选框。然后我使用hook_form_alter添加一个texfield,当选中复选框时,该texfield应该是可见的。
function test_form_alter(&$form, &$form_state, $form_id) {
if($form_id == 'user_register_form') {
$form['profile_test']['test'] = array(
'#type' => 'textfield',
'#title' => 'Test text',
'#states' => array(
'visible' => array(
':input[name="field_apply"]' => array('checked' => TRUE),
),
),
);
}
}
但#states不起作用。即使未选中field_apply,Textfield仍然可见。
答案 0 :(得分:0)
我解决了它:) #state中字段的名称错误。 只需使用firebug,选择field_apply复选框,复制“name”属性的值并替换':input [name =“field_apply”]中的“field_apply”...所以在上面的例子中#states属性应如下所示:
'visible' => array(':input[name="profile_test[field_apply][und]"]' => array('checked' => TRUE)),