Создайте функцию проверки для вашей формы. Вот пример использования вашей формы. Например, скажем, ваш код формы находится в функции с именем my_email
:
<?php
function my_email() {
$form = array();
$form['address']['mail'] = array(
'#type' => 'textfield',
'#title' => t('E-mail'),
'#required' => TRUE,
'#default_value' => $subscription->mail,
'#maxlength' => 255,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Versturen'),
);
return $form;
}
function my_email_validate($form, &$form_state) {
// YOUR CUSTOM VALIDATION CODE GOES HERE
if (!valid_email_address($mail)) {
form_set_error('submitted][email_address', t('The email address appears to be invalid.'));
}
}
function my_email_submit($form, &$form_state) {
// YOUR CUSTOM SUBMIT CODE GOES HERE
}
?>
Эта функция позволит вам написать собственный код, чтобы определить, являются ли значения, введенные в ваши поля, действительными или нет. Вы также можете добавить пользовательскую функцию отправки для вашей формы для выполнения пользовательского кода во время отправки формы.
Подробнее о проверке форм см. В разделе Проверка форм , отправка форм в разделе Отправка форм или прочитайте статью целиком, чтобы лучше понять API форм: Краткое руководство по API форм
Вместо добавления обработчика проверки формы в форму, вы можете добавить обработчик проверки к элементу формы, который необходимо проверить: используйте #element_validate , который принимает массив обработчиков проверки, которые будут применены к элементу формы.
Обработчик проверки получает три аргумента: проверяемый элемент формы
$form_state
и$form
массив для формы, содержащей элемент формы. Обработчик проверки должен вызывать form_error () или form_set_error (), чтобы сообщить о любой ошибке проверки.источник
Объясняется здесь: http://drupal.org/node/279127
источник
Вы можете просто использовать модуль Elements и просто использовать 'emailfield' в свойстве #type элемента формы, вот так:
Просто так легко с модулем элементов, делать пользовательскую проверку для простого поля электронной почты не имеет смысла, вам не нужно изобретать велосипед ...
источник
Установите модуль Email Field и исправьте его с помощью исправления в комментарии 16. Затем используйте код в связанном описании проблемы, чтобы определить поле электронной почты со встроенной проверкой:
источник
В Drupal 8 это можно проверить с помощью следующего кода.
Есть интерфейс для этого с 8.7 https://www.drupal.org/node/2997196
Ссылка: https://www.drupal.org/node/2912661
источник
Адрес электронной почты может быть подтвержден с помощью обработчика проверки формы
Если функция
your_form
определяет вашу форму, то обработчик проверки по умолчанию будетyour_form_validate
или иначе вы также можете установить его вручнуюисточник