Dynamische Formular-Überprüfung mittels JavaScript
Christian 17. August 2009
Soeben habe ich ein JavaScript programmiert, welches dynamisch Formulare auswertet und überprüft. Ziel des Ganzen ist es, damit viel Programmierarbeit einzusparen, da nicht für jedes Formular ein einzelnes Skript geschrieben werden muss.
Ich möchte damit die ganzen verschiedenen Formulareingaben in phpMyCMS dynamisch überprüfen.
Die Verwendung ist ganz einfach: statt eines Submit-Buttons wird ein “einfacher” Button verwendet – dieser enthält einen Aufruf mit diversen Parametern. Der erste Parameter (und unbedingt dieser!) enthält den Namen des Formulars, die anderen (optionalen) Parameter enthalten die Namen der zu überprüfenden Felder. Ein Beispiel:
<input ... onclick="javascript:checkElements('test', 'titel', 'autor')" />
Das Skript überprüft dann die Felder und färbt nicht ausgefüllte Felder rot ein, sodass der Benutzer den Fehler gleich erkennt.
Das Ganze funktioniert zuverlässig. In einer zweiten Version will ich noch eine Unterstützung für Radio-Buttons, Checkboxen, etc. implementieren. Dies wird wohl eine Richtlinie für die Namensvergebung von Formularelementen mit sich führen. Ich denke da an Prefixes und werde wohl folgende verwenden:
- - chk_ für Checkboxen
- - rad_ für Radiobuttons
- - sel_ für Select-Felder
Das Ganze sieht folgendermaßen aus:
Den Quellcode der vorläufigen phpMyCMS JavaScript-Funktionen mit dieser Funktion gibt es hier im SpongedPaste, ein Beispiel ist hier ebenfalls im Spongedpaste einsehbar.
- Programmieren , Systemhelden-relevant , phpMyCMS
- 2 Kommentare

Was nun noch fehlt ist die überprüfung auf validität z.B.:
email -> Feld muss gültige email sein.
tel -> Feld muss gültige tel sein.
icq -> Feld muss gültige….
Sowas wär noch schick
lg
David
Hi David!
Gestern habe ich eine neue Version davon fertiggestellt.
Da gibts das jetzt für:
- Postleitzahlen (sind 6 Stellen vorhanden?)
- E-Mail (läuft noch nicht ganz so rund, soll guggen, ob ein @ vorhanden ist)
- Checkboxen
- Radiobuttons
- Select-Containers
Letztere drei leider ohne Highlightning bisher. Da wird noch gearbeitet.
LG, Christian!