| 2/4 |
|
INHALT
Inhaltsüberprüfung von Formularen (2/4) Statements (3/4) Arrays (4/4) Cookies (4/4) |
. | • Der
«gefälschte» Event: Erinnern Sie sich daran, dass ein
Ereignis normalerweise abläuft, wenn der User etwas
anklickt? Manchmal macht es aber mehr Sinn, einen Event
zu emulieren, d.h. die Seite erzeugt den Event selber und
wartet nicht auf eine User-Eingabe. Mit einem derartigen
‘gefälschten’ Ereignis lassen sich Formulare
interaktiv anpassen, Usereingaben können verarbeitet
oder durch neue Eingabefelder präzisiert werden. So ist es beispielsweise sinnlos, einen User, der im Formular angibt, dass er keine PC-Zeitschriften liest, in einem späteren Punkt zu fragen, welches denn sein liebstes PC-Magazin ist.
In der Logik des Scripts braucht es dazu eine Checkbox für die erste Frage und eine Liste für die spätere Auswahl. Wenn der User dann einen Listeneintrag anklickt, wird der Status der Checkbox abgefragt und je nachdem die Auswahl gesperrt. Im Code (Seite 89 links) sieht das so aus. In Zeile 2 wird zuerst der Status der Checkbox geprüft. Wenn sie leer ist, wird durch die Zeilen 3 und 4 in der Liste die Auswahl ‘Ich lese keine PC-Zeitschriften’, die als Standard aktiviert ist, gesperrt; das heisst, jede nachträgliche Änderung wird ignoriert. Falls die Checkbox aktiviert ist, lässt sich dagegen ganz gewöhnlich aus der Liste auswählen. Inhaltsüberprüfung
von Formularen Typische Aufgaben einer derartigen Überprüfung wären beispielsweise: Sind alle notwendigen Felder ausgefüllt? Beinhalten Sie gültige Zeichen? Haben Sie eine übliche Länge? Unser Beispiel überprüft, ob in einem Formular mit drei Feldern alle ausgefüllt sind und ob das Feld für die Telefonnummer nur Zahlen enthält.
Zunächst definieren wir drei Funktionen. Die erste überprüft, ob alle drei Felder ausgefüllt sind, indem sie deren Inhalt mit einem Leerstrong vergleicht (Zeile 2). Ist alles in Ordnung, kommt die zweite Funktion zum Zug, sonst wird der User mit einer Warnung daran erinnert, dass erforderliche Daten fehlen. Die zweite Funktion ist die Masterfunktion der Prüfung, ob die Telefonnummer korrekt eingegeben wurde. Dafür wird zuerst eine Variable TestVar definiert, die das Resultat der eigentlichen Überprüfung in der dritten Funktion übernimmt und je nachdem den User auffordert, eine gültige Nummer einzugeben. Die wichtigste Funktion ist die dritte. Hier geschieht die eigentliche Prüfung, indem der Inhalt der Eingabebox eingelesen und Zeichen für Zeichen mit einem Referenzstring verglichen wird. Aber der Reihe nach: In Zeile 17 wird die Referenz definiert, sie enthält alle einfachen Zahlen und ein Leerzeichen (wichtig bei Telefonnummern). Der for-Loop in Zeile 18 und 19 sorgt dafür, dass jedes Zeichen einzeln nacheinander überprüft wird – das jeweils aktuelle Zeichen wird in eine neue Variable TempChar eingelesen und dann in Zeile 20 mit der Referenz verglichen. Entspricht das Zeichen keinem aus der Referenz, wird das durch die Zeile 21 als 0 an die Masterfunktion ausgegeben, ansonsten gibt Zeile 24 eine 1 aus. Diese Ausgabe wird dann in Zeile 10 von der Masterfunktion ausgewertet. |
||