2012-08-09 42 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)),