Пользовательская проверка для формы?

Мне нужно добавить настраиваемую проверку в форму, чтобы добавить текст статьи.

Я ожидал что-то вроде hook_FORM_ID_validate(), чтобы справиться с этим, но не могу найти что-либо релевантное в документации API.

Как добавить пользовательскую проверку в форму?

23 голоса | спросил gilzero 18 FebruaryEurope/MoscowbSat, 18 Feb 2012 10:47:36 +0400000000amSat, 18 Feb 2012 10:47:36 +040012 2012, 10:47:36

2 ответа


46

Вы можете добавить любое количество функций проверки в любую форму в 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"');
  }
}
ответил Clive 18 FebruaryEurope/MoscowbSat, 18 Feb 2012 18:36:45 +0400000000pmSat, 18 Feb 2012 18:36:45 +040012 2012, 18:36:45
4

Вы должны использовать hook_form_alter и добавить свою функцию в #validate .

ответил Countzero 18 FebruaryEurope/MoscowbSat, 18 Feb 2012 12:40:29 +0400000000pmSat, 18 Feb 2012 12:40:29 +040012 2012, 12:40:29

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132