Webformulare und Fehlerbehandlung beim Senden der Daten mit Ajax

Progressive Enhancement muss nichts Kompliziertes sein, außerdem steigert AJAX die Benutzerfreundlichkeit

Oftmals bestehen falsche Vorstellungen über den Aufwand bezüglich Fehlerbehandlung zur Verarbeitung von Webformularen. Betrachte untenstehendes Formular, das Eingabefeld ist ein Pflichtfeld. Geben Sie also einen beliebigen Namen da ein und testen das Formular.

Erläuterungen

Grundsätzlich erfolgt die Prüfung der eingegebenen Daten immer serverseitig, eine doppelte Prüfung client- wie serverseitig ist unnötig. Dabei ist es unerheblich, auf welchem Weg die Daten gesendet wurden, egal also ob über Ajax oder ob ein normaler Submit erfolgte. In Perl sieht die Prüfung eines Pflichtfeldes etwa so aus:

my $name = $self->trim( $self->param('name') ) ||
    die "Bitte Name eingeben,\ndas Feld darf nicht leer sein!\n";

Wobei obenstehendes Stückchen Code nur das Wesentliche zeigt, nämlich dass es genügt, zur Ausgabe der Fehlermeldung ganz einfach nur eine Exception zu werfen. Die wird natürlich aufgefangen und schließlich geht der Fehlertext mit einem HTTP-Status 502 als Response raus in Richtung Client, wo allein der HTTP-Status darüber entscheidet, auf welche Art und Weise der Fehlertext ausgegeben wird:

var xhr = new XMLHttpRequest();
xhr.onload = function(){
    if( xhr.status != 200 ){
        return alert(xhr.response);
    }
};

Und wie gewöhnlich wird beim Senden der Daten mit AJAX die Seite mit dem Formular nicht neu geladen. Somit verbleibt die Seite mit Formulareingaben im Browser und der Benutzer muss nicht unnötig scrollen.


Anbieter: nmq​rstx-18­@yahoo.de, die Seite verwendet funktionsbedingt einen Session-Cookie und ist Bestandteil meines nach modernen Aspekten in Perl entwickelten Frameworks.