2012-08-09 38 views
1

我有由配置文件2创建的名为field_apply的复选框。然后我使用hook_form_alter来添加一个texfield,当复选框被选中时它应该是可见的。#状态不适用于配置文件2

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

我解决了它:) #state中的字段名称错误。 只需使用Firebug,选择field_apply复选框,复制“name”属性的值并替换':input [name =“field_apply”]'中的“field_apply”'...因此,在上例中#states属性应如下所示:

'visible' => array(':input[name="profile_test[field_apply][und]"]' => array('checked' => TRUE)),