如何在默认值字段集下方和文本字段下方添加自定义复选框,并且它是自定义提交处理程序?
我使用了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;
}
}
答案 1 :(得分: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,'select'(而不是'list')等。 所以在这种情况下,我认为hook_form_alter不适用于所有类型的文件。 这就是我的方法的原因 hook_form_field_ui_field_edit_form_alter或hook_field_widget_third_party_settings_form。