Eine Unterscheidung der beiden Methoden ist vor allem bei Passwortübergaben sehr sinnvoll. So würde es sich sicher keiner wünschen, dass er ein Passwort eingibt und dieses dann groß in der URL Zeile des Browsers angezeigt wird. In diesem Fall sollte also doch möglichst die Methode POST verwendet werden. ![]() 2. Formularelemente<INPUT> - Felder Die Einbindung eines Formularelements erfolgt meist durch das <INPUT> - Tag. Die Eigenschaft "type" dieses Tags bestimmt dabei die Art des Formularelements. Mögliche Werte, die "type" annehmen kann, sind:
Eigenschaften: Eingabefeld: Das Eingabefeld hat mehrere Eigenschaften:
Schaltfläche: Das optische Erscheinungsbild ist durch das Betriebssystem vorherbestimmt.
Passwortfeld:
Submit / Reset: Die Syntax entspricht der einer normalen Schaltfläche. Im Gegensatz zu normalen Buttons, ist bei diesen Elementen das Ereignis schon vorbestimmt. Der Klick auf den Submit-Button bewirkt das Aufrufen der Formularaktion. Dabei werden alle im Formular befindlichen Werte übergeben. Bei Betätigung des Reset-Buttons werden alle schon getätigten Formulareingaben gelöscht. Radiobutton: Radiobuttons können zu Gruppen zusammengefaßt werden. Dies ermöglicht, dass aus einer Gruppe immer nur ein Button markiert sein darf. Alle Buttons, die derselben Gruppe angehören, müssen mit dem gleichen Namen versehen sein. Diese Gruppe besitzt verschiedene Eigenschaften, welche über den Index angesprochen werden. document.forms[i].gruppenname.length à Anzahl der Buttons in einer Gruppe
!!!Dieses Element besitzt ebenfalls einen Parameter 'value'. Dieser unterscheidet sich jedoch in seiner Funktion grundlegend von den value-Werten anderer Elemente. Checkbox:
!!!Dieses Element besitzt ebenfalls einen Parameter value. Dieser unterscheidet sich jedoch in seiner Funktion grundlegend von den value-Werten anderer Elemente. hidden: Versteckte Eingabefelder dienen dazu Parameterwerte zu übermitteln, die vom Benutzer nicht gesehen werden sollen. Mit ihnen ist es möglich, Zusatzinformationen oder erläuternden Text einzufügen, die bei Absenden mittels Submit-Button mit übertragen werden. Es können auch Daten ausgelesen werden, die nicht auf dem Bildschirm zu sehen sind. So ist es z.B. möglich, Information zu bestimmten Einstellungen des Computers des Absenders zu erhalten.
Textarea
select - Objekt (Listen) Hierbei handelt es sich um das komplexeste Formularelement überhaupt. Es handelt sich um ein Container-Objekt, welches ein Array von option-Objekten enthält. Des weiteren kann im HTML-Code festgelegt werden, ob es sich um eine Popup- oder Scroll-Liste handelt (einstellbar über das Attribut size des select-Objektes). Bei der Popup-Liste kann im Gegensatz zur scrollbaren Liste nur ein Eintrag ausgewählt werden. Das select-Objekt selbst sowie die einzelnen Optionen können Attribute erhalten. selectedIndex - stellt das wichtigste Attribut des select-Objektes dar; gibt den Index des ausgewählten Eintrages zurück; Numerierung beginnt bei 0 document.forms[i].selectName.selectedIndex Eigenschaften size - bestimmt die Anzahl der sichtbaren Einträge der Liste size = 1 à Popup-Liste, ansonsten Scroll-Liste Attribute option-Objekt
document.forms[i].selectName.options[i].value ![]() 3. Zugriff auf InhalteDer Zugriff auf Formularinhalte erfolgt über JavaScript-Funktionen. Dabei ist es notwendig die einzelnen Elemente anzusprechen und ihre Werte abzufragen. Die Werte sind jeweils in dem Attribut value gespeichert. Die Abfrage läuft wie folgt ab: document.Formularname.Elementname.value document.forms[i].elements[i].value Die übersichtlichere Variante ist die Erstgenannte. ![]() 4. FehlerkontrolleBei der Auswertung der Formulardaten kann es unter Umständen zu Fehlern kommen. So können z.B. erforderliche Daten nicht eingetragen worden sein. Um dies zu verhindern müssen die Inhalte vor dem Absenden überprüft werden. Dafür sollen die Werte der einzelnen Elemente ausgelesen und auf Inhalt getestet werden. Sollte bei einem der Werte der Inhalt null (" ") auftreten, ist dieser Wert nicht gesetzt. Daraufhin kann ein Hinweis (z.B. als alert- Anweisung ) an den Benutzer erfolgen, daß dieses Feld noch auszufüllen ist. Ein weiterer Fehler kann die Angabe von falschen E-mail - Adressen sein. Diese müssen also ebenfalls überprüft werden. Eine Möglichkeit ist der Test auf das @-Zeichen: if(document.Formular.Mail.value.indexOf('@') == -1) { alert("Keine E-Mail-Adresse!"); document.Formular.Mail.focus(); return false; } Das Abfangen von Fehlern erfolgt über einen try- /catch-Block. ![]() 5. BeispielKontaktformular:
ansehen Auswertung des Formulars: <html> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"> <title>Auswertung</title> <script language = "javascript"> <!-- parameter = window.location.search; einzeln = parameter.split("&"); Anrede = einzeln[0]; Name = einzeln[1]; Ort = einzeln[2]; Email = einzeln[3]; Betreff = einzeln[4]; Gebtag = einzeln[5]; gebmonat = einzeln[6]; gebjahr = einzeln[7]; was = Anrede.split("="); wer = Name.split("="); wo = Ort.split("="); wie = Email.split("="); warum = Betreff.split("="); wann1 = Gebtag.split("="); wann2 = gebmonat.split("="); wann3 = gebjahr.split("="); document.writeln("Anrede: " + was[1] + "<br>"); document.writeln("Name: " + wer[1] + "<br>"); document.writeln("Ort: " + wo[1] + "<br>"); document.writeln("Email: " + wie[1] + "<br>"); document.writeln("Betreff: " + warum[1] + "<br>"); document.writeln("Gebtag: " + wann1[1] + "." + wann2[1] + "." + wann3[1]); --> </script> </head> <body bgcolor="#ffffff"> <p></p> </body> </html> Erklärung zur Auswertung: Über window.location.search werden die Parameter, welche in der Adresszeile übergeben werden, zurückgelesen und in "parameter" gespeichert. Diese liegen in der Form: ?Parametername1=Parameterwert1&Parametername2=Parameterwert2& ... vor. Um also an den Wert der einzelnen Parameter zu gelangen, ist es nötig, den String "parameter" aufzusplitten. Das erfolgt über die Methode split(). Beim ersten aufsplitten wird als Trennzeichen das &-Zeichen benutzt. Die einzelnen Substrings werden als Einträge in das Array "einzeln" gespeichert. Die Einträge liegen also in der Form: Parametername1=Parameterwert1 vor. Um an den endgültigen Wert zu gelangen, müssen die Einträge des Arrays noch einmal gesplittet werden. Als Trennzeichen wird das = - Zeichen verwendet. Die Werte werden wiederum in verschiedene Arrays gespeichert, wobei jedes Array dann zwei Einträge enthält - den Parametername und den Parameterwert. Bei dem zweiten Eintrag im Array handelt es sich nun um den gewünschten Wert. Die Ausgabe erfolgt mit document.writeln(). ![]() |