21 Jun, 2008 in Tutorials, Web-Entwicklung by Jérôme

Pimp My User Form - Teil 1: Passwort-Felder

Fast jede Web-Anwendung bietet den Usern die Möglichkeit, die eigenen Daten auf einer Profilseite zu bearbeiten. Mit JavaScript und CSS kann man diesen Vorgang angenehmer gestalten, indem man das Eingabeformular durch Stil und Swoosh-Effekte aufhübscht.

Dabei sollte aber auch beachtet werden, dass JavaScript und CSS nicht immer aktiviert sind - das Formular sollte also auch funktionieren, wenn beides ausgeschaltet ist.

In dieser Tutorial-Reihe werden wir Schritt für Schritt ein User-Formular mithilfe der MooTools veredeln. Der sich daraus ergebende Code sollte möglichst wiederverwendbar sein. Den Anfang machen wir mit den Passwort-Feldern.

Passwörter sind für User sehr wichtig: sie schützen die eigenen Daten vor unbefugtem Zugriff. Bei der Bearbeitung der Daten wird das Passwort jedoch in den meisten Fällen nicht geändert - es hat also keinen Sinn, die entsprechenden Felder jedes Mal anzuzeigen. Stattdessen wollen wir das Formular so einrichten, dass die Felder erst auf Anfrage angezeigt werden; so wird das Formular schlanker und der User muss sich keine Gedanken darüber machen, ob er die Felder jetzt ausfüllen muss oder nicht.

Das fertige Ergebnis findet sich hier.

Wir werden mit dem folgenden Formular arbeiten:

Damit wir später per JavaScript auf die zu versteckenden Elemente zugreifen können, schließen wir sie in ein Container-Element ein (”password-container”). Damit sind die Vorbereitungen auf HTML-Seite bereits vollendet. Auch mit ausgeschaltetem JavaScript kann der User das Formular ohne Probleme verwenden.

Das dazugehörige CSS sieht folgendermaßen aus:

Für die Verarbeitung der Passwort-Felder ergibt sich dieser Workflow:

  1. Direkt nach dem Laden der Seite:
    1. Ausblenden der Passwort-Felder bzw. des Passwort-Containers
    2. Einblenden eines Links “Passwort ändern”
  2. Beim Klick auf den “Passwort ändern”-Link:
    1. Einblenden des Passwort-Containers
    2. Ausblenden des “Passwort ändern”-Links

Um die Wiederverwendbarkeit dieses Features zu gewährleisten, setzen wir die Funktion in einer konfigurierbaren Klasse um. Beim Instanziieren eines neuen Objekts wird ein Konfigurations-Objekt übergeben, das alle benötigten Informationen enthält, um dieses oder andere Formulare um die Möglichkeit bereichert, einen Bereich beim Aufruf der Seite auszublenden und ihn per Klick auf einen Link wieder einzublenden

In diesem Fall ist dies unser Konfigurationsobjekt:

  • frm: ID des Formulars, das gepimpt werden soll
  • passwordContainer: CSS-Klasse des Passwort-Containers
  • divChangePasswordClass: CSS-Klasse, die dem DIV-Element zugewiesen werden soll, in dem sich der “Passwort ändern”-Link befindet. In diesem speziellen Fall ist das “row”, aber in anderen Formularen werden sicherlich andere Klassen-Namen benötigt, die nicht fest in den Code der JavaScript-Klasse geschrieben werden sollten.
  • showPasswordLabel: Text, der als Link dargestellt werden soll

Und hier ist endlich die Klasse, die es mit dem Konfigurationsobjekt aufnehmen wird:

Zum Schluss führen wir noch alles zusammen, denn im Moment stehen die einzelnen Komponenten noch einzeln da und bewirken gar nichts. In den <head>-Bereich der HTML-Datei kommen nun die Aufrufe, um die Klasse nach dem Seitenaufruf auf das Formular anzuwenden:

Und so sieht das fertige Ergebnis aus.

Über Verbesserungsvorschläge und sonstige Rückmeldungen freue ich mich natürlich - die Kommentare stehen euch offen!

No Responses so far | Have Your Say!

Leave a Feedback

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>