2016-08-17 67 views
0

enter image description here如何添加複選框處於現場形式在Drupal 8

我怎樣才能默認值字段集下與下面的文本字段添加自定義複選框,它的自定義提交處理?

我已經使用了hook_form_field_ui_field_edit_form_alter(),但它不起作用。 我已經使用hook_field_widget_third_party_settings_form(),但它不工作。

不知道我在做什麼錯。 請幫忙。

+0

你想要複選框的作用是什麼?它應該做什麼? –

回答

1

你可以改變形式下面提到的方式

function {your_module}_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) { 
    switch ($form_id) { 
    case 'field_config_edit_form': 
     $form['default_value']['widget'][1] = array(
     '#type' => 'checkbox', 
     '#title' => t('Your checkbox'), 
     '#size' => 10, 
     '#maxlength' => 255, 
     '#default_value' => 1, 
     '#required' => TRUE, 
     '#description' => '<p>' . t('Your checkbox altered.') . '</p>', 
    ); 
    break; 
    } 
} 

我試圖在我的本地連接下面的截圖: enter image description here

0

感謝您的幫助! 如果我想讓它適用於多種字段類型(數字,'分類','列表','文本'等),那麼它的默認行爲是不同的D8 ,而在D7中,當我們使用hook_form_field_ui_field_edit_form_alter()時,我們可以簡單地通過它作爲一個數組。像:

if (in_array($form['#field']['module'], array('number', 'taxonomy', 'list', 'text'))) { 
    //My form field here 
} 

但在D8也有一些新的名詞,如:entity_autocomplete,「選擇」(而不是「列表」)等 因此,在這種情況下,我覺得hook_form_alter不會爲所有類型的Fileds的工作。 這就是爲什麼我的方法是 hook_form_field_ui_field_edit_form_alter或hook_field_widget_third_party_settings_form。