n Create custom validation/submit handler to an existing form in Drupal 8 | CodimTh

Please Disable Your Browser Adblock Extension for our site and Refresh This Page!

our ads are user friendly, we do not serve popup ads. We serve responsible ads!

Refresh Page
Skip to main content
On . By CodimTh
Category:

In this post, I'll show you how to create custom validation/submit handler to an existing form in Drupal 8.

Custom validation handler

use Drupal\Core\Form\FormStateInterface;

/**
 * Implements hook_form_FORM_ID_alter() for the FORM_ID() form.
 */
function mymodule_form_FORM_ID_alter(&$form, FormStateInterface $form_state, $form_id) {
    $form['#validate'][] = '_mymodule_form_FORM_ID_validate';
}

/**
 * Validates submission values in the FORM_ID() form.
 */
function _mymodule_form_FORM_ID_validate(array &$form, FormStateInterface $form_state) {
    // Validation code here
}

 

Custom submit handler

use Drupal\Core\Form\FormStateInterface;

/**
 * @param $form
 * @param FormStateInterface $form_state
 * @param $form_id
 */
function mymodule_form_node_form_alter(&$form, FormStateInterface $form_state, $form_id) {
    foreach (array_keys($form['actions']) as $action) {
        if ($action != 'preview' && isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] === 'submit') {
            $form['actions'][$action]['#submit'][] = 'mymodule_form_submit';
        }
    }
}

/**
 * @param array $form
 * @param FormStateInterface $form_state
 */
function mymodule_form_submit(array $form, FormStateInterface $form_state){
    // submit code here

}

Example: how to create custom validation/submit handler on user registration form.

/**
 * Implements hook_form_form_id_form_alter().
 */
function mymodule_form_user_register_form_alter(&$form, &$form_state, $form_id) {
    $form['#validate'][] = '_mymodule_user_register_validate';
    $form['#submit'][] = '_mymodule_user_register_form_submit';


}

/**
 * @param $form
 * @param FormStateInterface $form_state
 */
function _mymodule_user_register_form_submit($form, FormStateInterface $form_state)
{
// submit code here
}

/**
 * Custom validation function.
 *
 * Checks if the domain in the email address is on a list of allowed domains.
 */
function _mymodule_user_register_validate(&$form, &$form_state) {
 // Validation code here
 
}

Riadh Rahmi

Senior Web Developer PHP/Drupal & Laravel

I am a senior web developer, I have experience in planning and developing large scale dynamic web solutions especially in Drupal & Laravel.

Web Posts

Search

Page Facebook