8.5.x field.api.php hook_field_widget_WIDGET_TYPE_form_alter(&$element, \Drupal\Core\Form\FormStateInterface $form_state, $context)
8.0.x field.api.php hook_field_widget_WIDGET_TYPE_form_alter(&$element, \Drupal\Core\Form\FormStateInterface $form_state, $context)
8.1.x field.api.php hook_field_widget_WIDGET_TYPE_form_alter(&$element, \Drupal\Core\Form\FormStateInterface $form_state, $context)
8.2.x field.api.php hook_field_widget_WIDGET_TYPE_form_alter(&$element, \Drupal\Core\Form\FormStateInterface $form_state, $context)
8.3.x field.api.php hook_field_widget_WIDGET_TYPE_form_alter(&$element, \Drupal\Core\Form\FormStateInterface $form_state, $context)
8.4.x field.api.php hook_field_widget_WIDGET_TYPE_form_alter(&$element, \Drupal\Core\Form\FormStateInterface $form_state, $context)
8.6.x field.api.php hook_field_widget_WIDGET_TYPE_form_alter(&$element, \Drupal\Core\Form\FormStateInterface $form_state, $context)
7.x field.api.php hook_field_widget_WIDGET_TYPE_form_alter(&$element, &$form_state, $context)

Alter widget forms for a specific widget provided by another module.

Modules can implement hook_field_widget_WIDGET_TYPE_form_alter() to modify a specific widget form, rather than using hook_field_widget_form_alter() and checking the widget type.

This hook can only modify individual elements within a field widget and cannot alter the top level (parent element) for multi-value fields. In most cases, you should use hook_field_widget_multivalue_WIDGET_TYPE_form_alter() instead and loop over the elements.

Parameters

$element: The field widget form element as constructed by \Drupal\Core\Field\WidgetBaseInterface::form().

$form_state: The current state of the form.

$context: An associative array. See hook_field_widget_form_alter() for the structure and content of the array.

See also

\Drupal\Core\Field\WidgetBaseInterface::form()

\Drupal\Core\Field\WidgetBase::formSingleElement()

hook_field_widget_form_alter()

hook_field_widget_multivalue_WIDGET_TYPE_form_alter()

Related topics

4 functions implement hook_field_widget_WIDGET_TYPE_form_alter()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

field_test_field_widget_multivalue_form_alter in core/modules/field/tests/modules/field_test/field_test.module
Implements hook_field_widget_multivalue_form_alter().
field_test_field_widget_multivalue_test_field_widget_multiple_form_alter in core/modules/field/tests/modules/field_test/field_test.module
Implements hook_field_widget_multivalue_WIDGET_TYPE_form_alter().
field_test_field_widget_multivalue_test_field_widget_multiple_single_value_form_alter in core/modules/field/tests/modules/field_test/field_test.module
Implements hook_field_widget_multivalue_WIDGET_TYPE_form_alter().
media_field_widget_multivalue_form_alter in core/modules/media/media.module
Implements hook_field_widget_multivalue_form_alter().

File

core/modules/field/field.api.php, line 228
Field API documentation.

Code

function hook_field_widget_WIDGET_TYPE_form_alter(&$element, \Drupal\Core\Form\FormStateInterface $form_state, $context) {

  // Code here will only act on widgets of type WIDGET_TYPE.  For example,
  // hook_field_widget_mymodule_autocomplete_form_alter() will only act on
  // widgets of type 'mymodule_autocomplete'.
  $element['#autocomplete_route_name'] = 'mymodule.autocomplete_route';
}