Cree una función de validación para su formulario. Aquí hay un ejemplo usando su formulario. Por ejemplo, supongamos que su código de formulario está en una función llamada 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
}
?>
Esta función le permitirá escribir código personalizado para determinar si los valores ingresados en sus campos son válidos o no. También puede agregar una función de envío personalizada para que su formulario ejecute código personalizado mientras se envía el formulario.
Lea más sobre la validación de formularios en Validar formularios , envíe formularios en Enviar formularios o lea el artículo completo para una mejor comprensión de la API de formularios : Guía de inicio rápido de API de formulario
En lugar de agregar un controlador de validación de formulario al formulario, puede agregar un controlador de validación al elemento de formulario que debe validarse: use #element_validate , que acepta una matriz de controladores de validación que se aplicarán al elemento de formulario.
El controlador de validación recibe tres argumentos: el elemento de formulario que se valida,
$form_state
y la$form
matriz para el formulario que contiene el elemento de formulario. El controlador de validación debe llamar a form_error () o form_set_error () para informar cualquier error de validación.fuente
Explicado aquí: http://drupal.org/node/279127
fuente
Puede usar el módulo Elementos y simplemente usar el 'campo de correo electrónico' en la propiedad #type del elemento de formulario, así:
Así de fácil con el módulo de elementos, hacer una validación personalizada para un campo de correo electrónico simple no tiene sentido, no tiene que reinventar la rueda ...
fuente
Instale el módulo de campo de correo electrónico y parchelo con el parche en el comentario 16. Luego use el código en la descripción del problema vinculado para definir su campo de correo electrónico con validación incorporada:
fuente
La dirección de correo electrónico se puede validar con su controlador de validación de formularios
Si la función
your_form
define su formulario, el controlador de validación predeterminado seríayour_form_validate
o de lo contrario también puede configurarlo manualmentefuente