1

我有 Profile2 创建的名为 field_apply 的复选框。然后我使用 hook_form_alter 添加一个在选中复选框时应该可见的 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,文本字段仍然可见。

4

1 回答 1

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)),
于 2012-08-13T10:44:38.780 回答