Wie bereits in dem Artikel Bessere Web Forms durch neue HTML5 Elemente erstellen angefangen, gibt es durch HTML 5 nun die Möglichkeit dem Browser – und falls der Browser das bereits unterstützt auch dem Benutzer – mitzuteilen, was für eingaben erwartet werden.
Hier möchten wir nun noch ein paar weitere Möglichkeiten aufzeigen.
autofocus
Das Attribut autofocus auf einem Textfeld bewirkt das dieses Element automatisch für die Eingabe aktiviert wird, sobald die Seite geladen ist. Ein Beispiel sind z.B. Anmeldemasken, wo der Benutzername und das Passwort abgefragt werden oder was jeder kennt ist die Suche von google – sobald die Seite aufgerufen wurde, hat das Textfeld den Focus und man kann seinen Suchbegriff direkt dort eintragen ohne das Suchfeld explizit auszuwählen. Diese Methode mit HTML5 hat einen großen Vorteil gegenüber einer Javascript – Implementierungen, denn bei einer Lösung mit Javascript muss man abfangen, dass ein Textfeld noch nicht geladen ist, bevor das Script ausgeführt wird. Auch bei deaktiviertem JavaScript funktioniert da neue Attribut.
-
<input type="text" id="txtUsername" autofocus/>
required
Eingabevalidierungen im Browser gehören heute zum Standard einer Webanwendung. Angefangen beim Kontaktformular bis zu komplexen Eingabeformularen. Eine der vermutlich meist geprüften Fälle ist dabei die überhaupt ein Wert im Textfeld vorhanden ist. Dafür kann man das Attribut required nutze. Textfelder die das Attribut nutzen müssen vom Benutzer ausgefüllt sein, ansonsten verhindert der Browser, dass das Formular abgesendet werden kann. Beim Opera wird dem Benutzer sogar eine Fehlermeldung in seiner Landessprache angezeigt, andere Browser heben die nicht ausgefüllten Felder optisch hervor.
-
<input type="text" id="txtUsername" required/>
pattern
Die Möglichkeit zu überprüfen, ob ein Wert in einem Textfeld eingegeben wurde, reicht oft nicht aus, da die Anforderungen z.B. an Geburtstage, etc. komplexer sind. Optimal ist es, solche Validierung direkt im Browser zu machen (natürlich auch serverseitig). Dafür gibt es in HTML 5 das wohl mächtigste Attribut für Formulare – das pattern Attribut. Das pattern Attribute akzeptiert regulären Ausdrücke die dann das Muster für bestimmte Eingabewerte bestimmen (z.B. Kundennummer besteht aus 2 Zahlen, dann 2 Buchstaben). Somit können ziemlich viele Spezialfälle abgefangen werden, für die es (noch) kein Standardattribut gibt. Vor dem Einsatz von diesem Attribut sollte überprüft werden, ob es nicht beriets ein Standardattribut gibt, wie z.B. für E-Mail-Adresse oder URL.
-
<input type="text" id="txtCountrycode" pattern="[A-Za-z]{3}" title="Drei Buchstaben" />
Neue INPUT types
Neben den hier vorgestellten neuen Attributen gibt es aber auch eine Menge an neuen Inputtypen die das klassiche type="text" erweitern.
Eingabefelder für E-Mailadressen sind in den meisten Fällen ganz normale Textfelder. Der type="email" ist speziell dazu gedacht E-Mail-Adressen aufzunehmen. Der Browser prüft für diese Felder automatisch, ob die E-Mail-Adresse valide ist.. Hierbei wird allerdings nur der Syntax der E-Mail geprüft, eine Überprüfung ob diese E-Mailadresse auch wirklich existiert wird nicht durchgeführt.
-
<input id="txtemail" type="email" />
url
Der Typ url ist ähnlich wie email nur wird hier halt auf Syntax einer gültigen URL geprüft.
number
Bei Benutzung vom type="number" kann man Zahlenangaben näheren spezifizieren. Dafür stehen bei diesem Typ noch 3 zusätzlich Attribute zur Verfügung, um die erlaubten Eingaben genau zu definieren. Durch das min Attribut kann man festlegen, was die kleinste Zahl ist die eingeben werden darf. Analog dazu gibt max die größte erlaubte Zahl an. Vielfach werden die Eingabefelder vom type="number" mit Pfeilen versehen, um die Zahl z.B. per Mausklich erhöhen oder erniedrigen zu können. Um die Einheit dafür festzulegen gibt es das step Attribut das besagt in welchen Schritten die Zahl verändert wird.
-
<input type="number" min="0" max="20" step="1" txt="txtInterval"/>
color
Der type="color" ist speziell für die Farbauswahl bzw. für Farbangaben gedacht. Einige Browser unterstützen diesen Typ mittlerweile – so bietet Opera dem Benutzer einen Colorpicker an mit dem eine Farbe ausgewählt werden kann.
-
<input type="color" name="color"/>