Erstellen Sie eine Validierungsfunktion für Ihr Formular. Hier ist ein Beispiel mit Ihrem Formular. Angenommen, Ihr Formularcode befindet sich in einer Funktion namens 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
}
?>
Mit dieser Funktion können Sie benutzerdefinierten Code schreiben, um festzustellen, ob die in Ihre Felder eingegebenen Werte gültig sind oder nicht. Sie können auch eine benutzerdefinierte Übermittlungsfunktion für Ihr Formular hinzufügen, um benutzerdefinierten Code auszuführen, während das Formular gesendet wird.
Weitere Informationen zum Validieren von Formularen finden Sie unter Validieren von Formularen , Senden von Formularen unter Senden von Formularen oder Lesen des gesamten Artikels zum besseren Verständnis der Formular-API: Formular-API-Kurzanleitung
Anstatt dem Formular einen Formularvalidierungshandler hinzuzufügen, können Sie dem zu validierenden Formularelement einen Validierungshandler hinzufügen: Verwenden Sie #element_validate , das ein Array von Validierungshandlern akzeptiert, die auf das Formularelement angewendet werden.
Der Validierungshandler erhält drei Argumente: Das zu validierende Formularelement, das
$form_state
und das$form
Array für das Formular, das das Formularelement enthält. Der Validierungshandler sollte form_error () oder form_set_error () aufrufen , um Validierungsfehler zu melden.quelle
Hier erklärt: http://drupal.org/node/279127
quelle
Sie können einfach das Elements- Modul und das 'emailfield' in der # type-Eigenschaft des Formularelements verwenden, genau wie folgt:
Nur so einfach mit Elements-Modul, benutzerdefinierte Validierung für ein einfaches E-Mail-Feld zu machen, hat keinen Sinn, Sie müssen das Rad nicht neu erfinden ...
quelle
Installieren Sie das E-Mail-Feld- Modul und patchen Sie es mit dem Patch in Kommentar 16. Verwenden Sie dann den Code in der Beschreibung des verknüpften Problems, um Ihr E-Mail-Feld mit integrierter Validierung zu definieren:
quelle
Die E-Mail-Adresse kann mit Ihrem Formularprüfungs-Handler überprüft werden
Wenn die Funktion
your_form
Ihr Formular definiert, ist der Standard-Validierungshandleryour_form_validate
oder Sie können ihn auch manuell festlegenquelle