Мне нужно добавить пользовательскую проверку формы, скажем, добавить форму статьи.
Я ожидал что-то вроде hook_FORM_ID_validate()
этого, но не могу найти ничего подходящего в документации API.
Как добавить пользовательскую проверку в форму?
Вы можете добавить любое количество функций проверки в любую форму hook_form_FORM_ID_alter()
следующим образом:
function mymodule_form_article_node_form_alter(&$form, &$form_state, $form_id) {
// There will already be some validate handlers added so you need to add to the
// array rather than overwrite it.
$form['#validate'][] = 'mymodule_article_form_validate';
// As mentioned above you can add as many as you want
$form['#validate'][] = 'mymodule_article_form_validate_2';
}
function mymodule_article_form_validate($form, &$form_state) {
// Random example, if the title is 'test' throw an error
if ($form_state['values']['title'] == 'test') {
form_set_error('title', 'Title cannot be "test"');
}
}
if ($form_state['values']['field_custom']['und'][0]['value'] == 'Error') { //throw error }
Вы должны использовать
hook_form_alter
и добавить свою функцию в#validate
собственность.источник