Information Technology Reference
In-Depth Information
3.4.3
Fehlerbehandlung mit »setCustomValidity()«
Wenn Ihnen all die bisher vorgestellten Möglichkeiten zur Fehlerbehandlung
noch nicht ausreichend erscheinen, können Sie sich auch selbst eine Funk-
tion zur Überprüfung des Inhalts programmieren. Im folgenden Beispiel wird
ein Eingabefeld vom Typ email definiert, wodurch der Browser schon die Über-
prüfung der gültigen E-Mail-Adresse übernimmt. Zusätzlich möchten wir aber
noch drei E-Mail-Domains ausschließen.
var invalidMailDomains = [
'hotmail.com', 'gmx.com', 'gmail.com' ];
function checkMailDomain(item) {
for (var i=0; i<invalidMailDomains.length; i++) {
if (item.value.match(invalidMailDomains[i]+'$')) {
item.setCustomValidity ('E-Mail-Adressen von '
+invalidMailDomains[i]+' sind nicht erlaubt.');
} else {
item.setCustomValidity('');
}
item.checkValidity();
}
}
Jedes Element im Array invalidMailDomains wird mit dem Wert des input -Ele-
ments verglichen. Die JavaScript-Funktion match() arbeitet mit regulären Aus-
drücken, weshalb wir an den Domain-Namen noch ein $ -Zeichen anhängen,
das das Ende der Zeichenkette spezifiziert. Stimmen die Zeichenketten über-
ein, so wird die setCustomValidity -Funktion aufgerufen und ihr die entspre-
chende Fehlermeldung übergeben. Handelt es sich nicht um einen Domain-
Namen aus dem Array, wird setCustomValidity() mit einer leeren Zeichenkette
aufgerufen. Intern wird dadurch die Variable validationMessage an das input -
Element angehängt, die Opera anschließend auch korrekt anzeigt (vergleiche
Abbildung 3.15). Der abschließende Aufruf der checkValidity -Funktion löst die
Überprüfung aus und führt zu der eben erwähnten Fehlermeldung.
Search WWH ::




Custom Search