<FORM> | NN alle IE alle HTML alle | |||||||||||
<FORM>...</FORM> | HTML-End-Tag: Erforderlich | |||||||||||
Auch wenn HTML-Formulare bei der Kommunikation zwischen Besuchern von Webseiten und Servern eine große Bedeutung haben, sind form-Elemente im Grunde nichts anderes als Container mit Steuerelementen. Die meisten Formularsteuerelemente, jedoch nicht alle, werden in Dokumenten als input-Elemente erstellt. Selbst wenn eine Interaktion zwischen Benutzer und input-Elementen nicht an den Server übertragen werden soll (wie z. B. bei einem clientseitigen Skript, das ein Eingreifen des Benutzers erfordert), sind alle input-Elemente durch ein form-Element eingeschlossen – und müssen in einem form-Element verschachtelt sein, damit sie in Navigator 4 oder früher dargestellt werden können. Ein Dokument kann zwar beliebig viele form-Elemente enthalten, aber Clients können die in den Formularsteuerelement en vorgenommenen Eintragungen nur für jeweils ein Formular auf einmal übertragen. Deshalb ist das Verteilen von Formularsteuerelement en auf mehrere form-Elemente nur dann sinnvoll, wenn die Elementgruppen unabhängig voneinander gesendet werden können. Wenn Sie innerhalb eines Formulars Elemente logisch oder strukturell gruppieren müssen, verwenden Sie das Element fieldset, um die notwendigen Untergruppierungen vorzunehmen. Wenn ein Formular an den Server gesendet wird, übertragen alle Formularsteuerelement e mit gesetzten name-Attributen sowohl ihre Namen als auch ihre Werte paarweise zur weiteren Bearbeitung an den Server (möglicherweise auch als E-Mail-Anhang oder Nachricht mithilfe des E-Mail-Modus des jeweiligen Browsers). Ein CGI-Programm (Common Gateway Interface) auf dem Server kann die Namens-/Wertpaare entgegennehmen und zur weiteren Bearbeitung trennen (z. B. Hinzufügen von Datensätzen zu einer Serverdatenbank oder Auslösen einer Schlüsselwortsuche). Das Serverprogramm wird über die URL des Attributs action aufgerufen. In Browsern läuft der Sendevorgang in wenigen wohldefinierten Schritten ab. Zunächst erstellt der Browser aus den Namens-/Wertpaaren der Formularsteuerelement e einen Formulardatensatz. Der Name ist identisch mit dem Wert des Attributs name. Der Wert eines Formularsteuerelement s hängt von dessen Typ ab. Der Wert eines Text-input-Elements ist gleich dem Inhalt, der zum Zeitpunkt des Absendens im Textfeld erscheint; bei einem Optionsfeld innerhalb einer Gruppe von Optionsfeldern (deren name-Attribute allesamt den gleichen Wert besitzen) wird der dem value-Attribut des ausgewählten Optionsfelds zugewiesene Wert für das Namens-/Wertpaar dieser Optionsfeldgruppe verwendet. Laut den W3C-Empfehlungen sollten für Formularsteuerelement e id-Attribute in Namens-/Wertpaaren verwendet werden. Browser (bis einschließlich Version 6) erkennen aber lediglich das Attribut name als Bezeichner für das übergebene Namens-/Wertpaar. Im zweiten Schritt wird der Text jedes Namens-/Wertpaars kodiert. Jedes Leerzeichen wird durch das Symbol + ersetzt. Reservierte Zeichen (nach RFC 1738) werden als Escape-Sequenzen wiedergegeben, und alle anderen nicht-alphanumerischen Zeichen werden durch ihre jeweilige hexadezimale Form repräsentiert (im Format %HH, wobei HH der Hexcode des ASCII-Zeichens ist). Der Name und Wert jedes Namens-/Wertpaars werden durch das Symbol = getrennt und die einzelnen Namens-/Wertpaare durch das Symbol & begrenzt. Im letzten Schritt bestimmt die Einstellung des Attributs method, wie der kodierte Formulardatensatz an den Server übertragen wird. Wenn method auf get gesetzt ist, wird der Formulardatensatz an die URL im Attribut action angehängt, getrennt durch das Symbol ?. Wenn method auf post und enctype auf den Standardwert gesetzt ist, wird der Datensatz als eine Art Nachricht (aber nicht als E-Mail) an den Server übertragen. Über die Methode GET übertragene Daten können nur eine bestimmte Länge aufweisen; bei der Methode POST ist die Datenlänge unbegrenzt und im Adressfeld des Browsers erfolgt keine Anzeige. Das Standardverhalten der Eingabetaste in Formularen ist mittlerweile allgemein anerkannt. Wenn ein Formular aus einem einzelnen Text-input-Element besteht, wird beim Drücken der Eingabetaste (bzw. Return) das Formular automatisch abgeschickt (als würde der Benutzer auf ein submit-Schaltflächenelement klicken). Umfasst das Formular zwei oder mehr Text-input-Elemente, bewirkt die Eingabetaste (bzw. Return) kein automatisches Abschicken (außer bei IE/Mac). Der Sendevorgang lässt sich in modernen Browsern mit Skripts abbrechen, die von der onsubmit-Ereignisbehandlungsroutine ausgelöst werden und beispielsweise die Gültigkeit überprüfen oder andere Funktionen durchführen. Dieses Ereignis setzt vor dem eigentlichen Abschicken des Formulars ein. Falls das Resulat der Ereignisbehandlungsroutine return false lautet, wird das Formular nicht gesendet, und der Benutzer kann die Formularelemente erneut bearbeiten. |
||||||||||||
Beispiel | ||||||||||||
<FORM name="orders" method="POST" action="http://www.giantco.com/cgi-bin/order"> ... </FORM> |
||||||||||||
Objektmodellreferenz | ||||||||||||
[window.]document.forms[i] [window.]document.forms[formName] [window.]document.formName [window.]document.getElementById(elementID) |
||||||||||||
Elementspezifische Attribute | ||||||||||||
|
||||||||||||
Elementspezifische EreignisbehandlungsroutinenAttribute | ||||||||||||
|
accept | NN nicht zutreffend IE nicht zutreffend HTML 4 |
accept="MIMETypeList" | Optional |
Das Attribut accept ist zur Verwendung mit input-Elementen des Typs file gedacht und ermöglicht die Spezifizierung von einem oder mehreren MIME-Typen für Dateien, die beim Abschicken des Formulars per Upload an den Server gesendet werden dürfen. Dieses Attribut ist so implementiert, dass die Dateitypen in den Dateidialogen, in denen die Dateien für den Upload ausgewählt werden, gefiltert werden. Auf diese Weise können Dateitypen clientseitig überprüft werden, sodass Dateien mit dem falschen MIME-Typ gar nicht erst an den Server gesendet werden. |
|
Beispiel | |
<FORM accept="text/html, image/gif" ...>...</FORM> |
|
Wert | |
MIME-Typ (Inhaltstyp, Groß-/Kleinschreibung unwichtig). Für mehrere Objekte ist eine durch Kommas getrennte Liste zulässig. Ein Verzeichnis der registrierten MIME-Typen finden Sie unter ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/. |
|
Standardwert | |
Keiner. |
accept-charset, acceptcharset | NN 6 IE 5 HTML 4 |
accept-charset="MIMETypeList" | Optional |
Dient zur Information des Servers (falls dieser entsprechend ausgerüstet ist) über die von Clientformularen zu erwartenden Zeichensätze. Die Version mit Bindestrich stammt aus der HTML 4-Spezifikation, doch in IE 5 und später (Windows) und in Netscape 6 ist dieser Attributname ohne Bindestrich implementiert. |
|
Beispiel | |
<FORM accept-charset="it, es" ...>...</FORM> |
|
Wert | |
Alias (Groß-/Kleinschreibung unwichtig) aus dem Zeichensatzregister (ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets). Mehrere Zeichensätze sind durch Kommas zu trennen. Der reservierte Wert unknown soll den Zeichensatz repräsentieren, den der Server zum Erzeugen des Clientformulars verwendet hat. |
|
Standardwert | |
unknown |
action | NN alle IE alle HTML alle |
action="URL" | Optional |
Gibt die URL an, auf die beim Abschicken des Formulars zugegriffen werden soll. Wenn das Formular zur weiteren Bearbeitung an den Server gesendet wird, kann es sich bei der URL um ein CGI-Programm oder eine HTML-Seite mit serverseitigen Skripts handeln. (Solche Skripts werden auf dem Server ausgeführt, bevor die HTML-Seite an den Client übertragen wird.) Als Resultat gibt der Server eine HTML-Seite zur Anzeige an den Client zurück. Soll die zurückgegebene Seite in einem anderen Frame oder Fenster angezeigt werden, muss das target-Attribut entsprechend gesetzt sein. Für den Wert des Attributs action können Sie auch eine mailto:-URL einsetzen. Navigator wandelt die Namens-/Wertpaare des Formulars in ein Dokument zum Anhängen an eine E-Mail-Nachricht um (oder für Hauptteil der Nachricht mit dem enctype-Attributwert "text/plain"; das Attribut enctype muss dabei vor dem Attribut action stehen). Aus Sicherheitsgründen wird der Benutzer über die bevorstehende E-Mail-Übertragung hingewiesen und erhält die Möglichkeit, die Nachricht abzubrechen. Das Senden von Formularen per E-Mail ist in Netscape 6 und 7 weitgehend deaktiviert. Da die Implementierung von einem Browser zum anderen stark variiert, kann es sein, dass viele per E-Mail übertragene Formulare bei Ihnen nicht ankommen. Wenn die CGI-Verarbeitung von Formularen über Ihren Kenntnisstand hinausgeht, sollten Sie sich nach einem Drittanbieter von so genannten FormMail-Diensten umsehen, der Ihnen Formulare per E-Mail zusendet. Wenn Sie das Attribut action weglassen, wird beim Abschicken des Formulars die aktuelle Seite neu geladen, und alle Formularelemente werden auf ihre Standardwerte gesetzt. |
|
Beispiel | |
<FORM method="POST" action="http://www.giantco.com/orders/order.html"> |
|
Wert | |
Eine vollständige oder relative URL. |
|
Standardwert | |
Keiner. |
|
Objektmodellreferenz | |
[window.]document.forms[i].action [window.]document.forms[formName].action [window.]document.formName.action [window.]document.getElementById(elementID).action |
autocomplete | NN nicht zutreffend IE 5 HTML nicht zutreffend |
autocomplete="featureSwitch" | Optional |
Wenn ein IE-Benutzer die Einstellung "Verwenden von AutoVervollständigen" aktiviert hat, steuert das Attribut autocomplete dieses Leistungsmerkmal für das gesamte Formular. Sie müssen außerdem vcard-name-Attribute für Text- und Kennwort-input-Elemente angeben, damit der Browser ein bestimmtes Feld, das mit einem der voreingestellten Einträge übereinstimmt, automatisch vervollständigen kann. |
|
Beispiel | |
<FORM method="POST" action="register.pl" autocomplete="on"> |
|
Wert | |
Konstanten: on | off. |
|
Standardwert | |
off |
|
Objektmodellreferenz | |
[window.]document.forms[i].autoComplete [window.]document.forms[formName].autoComplete [window.]document.formName.autoComplete [window.]document.getElementById(elementID).autoComplete |
enctype | NN alle IE alle HTML alle |
enctype="MIMEType" | Optional |
Gibt den MIME-Typ der Daten an, die mit dem Formular an den Server gesendet werden. Bei typischen Formularübermittlungen (bei denen das Attribut method auf POST gesetzt ist), ist der korrekte Inhaltstyp der Standardwert. Wenn Sie eine Datei als input-Element verwenden, setzen Sie das Attribut enctype auf "multipart/form-data". |
|
Beispiel | |
<FORM method="POST" enctype="text/plain" action="mailto:orders@giantco.com"> ... </FORM> |
|
Wert | |
MIME-Typ (Inhaltstyp). Für mehrere Objekte ist eine durch Kommas getrennte Liste zulässig. |
|
Standardwert | |
application/x-www-form-urlencoded |
|
Objektmodellreferenz | |
[window.]document.forms[i].encoding [window.]document.forms[formName].encoding [window.]document.formName.encoding [window.]document.getElementById(elementID).encoding |
lang | NN 3 IE 4 HTML 4 |
lang="languageCode" | Optional |
Die für die Attributwerte und Inhalte des Elements verwendete Sprache. Mithilfe dieser Informationen ist der Browser besser in der Lage, bestimmte Details wie Ligaturen (sofern von der betreffenden Schrift unterstützt oder in der geschriebenen Sprache erforderlich), Anführungszeichen und Worttrennungen korrekt darzustellen. Andere Anwendungen und Suchmaschinen können anhand dieser Informationen Wörterbücher für die Rechtschreibprüfung auswählen und Indizes erstellen. |
|
Beispiel | |
<SPAN lang="de">Deutsche Bundesbahn</SPAN> |
|
Wert | |
Sprachcode, bei dem nicht zwischen Groß- und Kleinschreibung unterschieden wird. |
|
Standardwert | |
Vorgabe des Browsers. |
|
Objektmodellreferenz | |
[window.]document.getElementById(elementID).lang
|
method | NN alle IE alle HTML alle |
method="GET" | "POST" | Optional |
Zur Übertragung von Formularen gibt es zwei HTTP-Methoden: GET und POST. Diese zwei Methoden bestimmen, ob die Formularelementdaten an den Server, der an die URL im Attribut action angehängt ist, übertragen (GET) oder als Transaktionsnachricht gesendet werden (POST). In der Praxis führt das Formular ein bedingungsloses Neuladen des gleichen Dokuments aus und setzt die Formularsteuerelement e auf ihre Standardwerte zurück, wenn die Attribute action und method keinem form-Element zugewiesen sind. |
|
Beispiel | |
<FORM method="POST" action="http://www@giantco.com/orders/order.html"> ... </FORM> |
|
Wert | |
Eine der Konstanten GET oder POST. Es spielt keine Rolle, ob diese Konstanten groß- oder kleingeschrieben werden. |
|
Standardwert | |
GET |
|
Objektmodellreferenz | |
[window.]document.forms[i].method [window.]document.forms[formName].method [window.]document.formName.method [window.]document.getElementById(elementID).method |
name | NN 2 IE 3 HTML nicht zutreffend |
name="elementIdentifier" | Optional |
Weist dem gesamten form-Element einen Bezeichner zu. Dieser Wert ist besonders nützlich beim Erstellen von für ältere Browser bestimmten Skripts, die das Formular oder verschachtelte Formularsteuerelement e referenzieren. Neuere Browser unterstützen zu diesem Zweck das bevorzugte Attribut id, doch das Attribut name wird zum Abschicken des Formulars auch weiterhin benötigt. |
|
Beispiel | |
<FORM name="orders" id="orders" method="POST" action="http://www.giantco.com/cgi-bin/order"> ... </FORM> |
|
Wert | |
Bezeichner (Groß-/Kleinschreibung beachten). |
|
Standardwert | |
Keiner. |
|
Objektmodellreferenz | |
[window.]document.forms[i].name [window.]document.forms[formName].name [window.]document.formName.name [window.]document.getElementById(elementID).name |
target | NN alle IE alle HTML alle |
target="windowOrFrameName" | Optional |
Wenn das vom Server nach der Bearbeitung des Formulars zurückgegebene HTML-Dokument nicht in das aktuelle Fenster bzw. den aktuellen Frame geladen werden soll, können Sie mit dem Attribut target das gewünschte Ziel festlegen. Zielnamen müssen Frames und Fenstern als Bezeichner zugewiesen werden. Namen für Frames werden mit dem Attribut name des Elements frame zugewiesen; Namen für neue Fenster lassen sich über den zweiten Parameter der Skriptmethode window.open( ) festlegen. Wird dieses Attribut weggelassen, ersetzt das zurückgegebene Dokument das Dokument mit dem form-Element. Bei einem Bezeichner, der nicht zu einem vorhandenen Frame oder Fenster gehört, wird für das zurückgegebene Dokument ein neues Fenster geöffnet. Wenn sich das Formular in einem Unterfenster befindet und als Ziel das Hauptfenster dienen soll, müssen Sie zuerst der Eigenschaft name des Hauptfensters mit einem Skript einen Bezeichner zuweisen. Diesen Namen müssen Sie dann als Wert für das Attribut target des Formulars angeben. Strikte DTDs für HTML 4 und XHTML unterstützen das Attribut target bei keinem Element, da Frames und Windows nicht mit reinem Document Markup gesteuert werden können. Da sich Frameset-Dokumente in der strikten Umgebung nicht validieren lassen, gibt es separate Frameset-DTDs für HTML 4 und XHTML. Wenn Ihre Dokumente mit diesen strikten DTDs validiert werden müssen und Sie Ziele verwenden möchten, können Sie die target-Eigenschaften von Links, Imagemaps und Formularen nach dem Laden der Seite mithilfe von Skripts festlegen. Ein form-Element kann nur ein Rückgabedokument und ein Ziel haben. Wenn durch das Abschicken eines Formulars der Inhalt mehrerer Frames geändert werden soll, können Sie in das Rückgabedokument ein Skript einbeziehen, dessen onload-Ereignisbehandlungsroutine Dokumente in andere Frames laden oder dynamisch schreiben kann. (Setzen Sie für jeden Frame die Eigenschaft location.href auf die gewünschte URL.) |
|
Beispiel | |
<FORM method="POST" action="http://www.giantco.com/cgi-bin/order" target="new"> ... </FORM> |
|
Wert | |
Bezeichner, bei dem zwischen Groß- und Kleinschreibung unterschieden wird, wenn der Frame- oder Fenstername über das Attribut name des Zielelements zugewiesen wurde. Vier reservierte Zielnamen dienen als Konstanten: |
|
Standardwert | |
_self |
|
Objektmodellreferenz | |
[window.]document.forms[i].target [window.]document.forms[formName].target [window.]document.formName.target [window.]document.getElementById(elementID).target |