function hook_form_validate($form, &$form_state) { $errors = form_get_errors(); if ($errors) { // Clear errors. form_clear_error(); // Clear error messages. $error_messages = drupal_get_messages('error'); // Initialize an array where removed error messages are stored. $removed_messages = array(); // Remove all errors originated by the 'foo][bar' element. foreach ($errors as $name => $error_message) { if ($name == 'body][und][0][value') { $removed_messages[] = $error_message; unset($errors[$name]); } } // Reinstate remaining errors. foreach ($errors as $name => $error) { form_set_error($name, $error); // form_set_error() calls drupal_set_message(), so we have to filter out // these from the error messages as well. $removed_messages[] = $error; } // Reinstate remaining error messages (which, at this point, are messages that // were originated outside of the validation process). foreach (array_diff($error_messages['error'], $removed_messages) as $message) { drupal_set_message($message, 'error'); } } }
Source: http://goo.gl/nI55mb