01 Validierung
Die Validierung eines Formulars in JavaScript findet clientseitig statt.
Wir möchten die Validierung also ausführen, bevor das Formular an den Server versendet wird.
Der load Event
load EventMit dem load Event gehen wir sicher, dass der Code innerhalb dieser Funktion erst ausgeführt wird, wenn die komplette Seite vom Client geladen wurde:
window.addEventListener("load", function(){
// Code wird erst ausgeführt, wenn Seite geladen wurde.
});Die Unterschiede zwischen verschiedenen Load-Events sind auf [https://javascript.info/onload-ondomcontentloaded] gut beschrieben. Hauptsächlich geht es darum, ob nur das HTML-Dokument geladen sein muss oder auch alle zusätzlichen Dateien (Bilder, JS, CSS etc.).
Der submit Event
submit EventWird ein Formular versendet, wird vom Browser ein submit Event für das abgesendete Formular ausgelöst.
Auf dieses Event können wir reagieren:
window.addEventListener("load", function(){
document.querySelector('#formular').addEventListener('submit', function(evt) {
console.log('Formular wird jetzt versendet.');
});
});Der Event-Handler wird ausgeführt, bevor das Formular an den Server versendet wird.
Umsetzung einer Validierung
Ähnlich wie in PHP, kannst du im submit Event deine Formular-Daten validieren.
Wie Du Fehlermeldungen ausgibst, ist dir überlassen. Diese können einfach als Liste am Formularanfang oder direkt «inline» bei den jeweiligen Formularfeldern dargestellt werden.
Auch die Methode um Fehlermeldungen zu sammeln oder darzustellen ist dir überlassen. Hierfür gibt es zahlreiche Möglichkeiten.
Formular mit Platzhalter für Fehlerliste
Validierung und bei Fehler den submit-Vorgang abbrechen!
submit-Vorgang abbrechen!Die übergebene Variable evt hat eine Methode preventDefault. Falls Fehler vorhanden sind, kannst du mittels evt.preventDefault() verhindern, dass das Formular an den Sever versendet wird. Siene Beispiel oben.
Ausgabe der Fehlerliste
Alle Fehler werden gebündelt im Platzhalter ausgegeben:
Zusatz für Fortgeschrittene
Inline-Fehler
Folgendes Script gibt die Fehlermeldungen direkt beim zugehörigen Feld aus:
Last updated
Was this helpful?