Inhaltsverzeichnis

Werbung
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Hochschule:
Standort:
Studiengang:
Veranstaltung:
Betreuer:
Typ:
Themengebiet:
Autor(en):
Studienzeitmodell:
Semesterbezeichnung:
Studiensemester:
Bearbeitungsstatus:
Prüfungstermin:
Abgabetermin:
Fallstudienarbeit
Hochschule für Oekonomie & Management
Düsseldorf
Bachelor Wirtschaftsinformatik
Fallstudie / Wissenschaftliches Arbeiten
Prof._Dr._Uwe_Kern
Fallstudienarbeit
HTML 5
Andreas Schreiber, Ivo Marx, Tom Reißberg, Daniel Dreissen
Abendstudium
WS10
2
begutachtet
Inhaltsverzeichnis
• 1 Einleitung
♦ 1.1
Aufgabenstellung
♦ 1.2 Zielsetzung
♦ 1.3
Vorgehensweise
• 2 Grundlagen
♦ 2.1 Allgemein
HTML
♦ 2.2 Einsatz von
Formularen
• 3 Analyse
♦ 3.1
Anwendungsbeispiel
♦ 3.2 Vergleich
HTML4 vs.
HTML5
◊ 3.2.1
Modifizierte
Elemente
⋅ 3.2.1.1
form
⋅ 3.2.1.2
legend
⋅ 3.2.1.3
input
⋅ 3.2.1.4
button
⋅ 3.2.1.5
select
Inhaltsverzeichnis
1
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
⋅ 3.2.1.6
option
⋅ 3.2.1.7
textarea
⋅ 3.2.1.8
fieldset
◊ 3.2.2 Neue
Elemente
⋅ 3.2.2.1
label
⋅ 3.2.2.2
datalist
⋅ 3.2.2.3
optgroup
⋅ 3.2.2.4
keygen
⋅ 3.2.2.5
output
⋅ 3.2.2.6
progress
⋅ 3.2.2.7
meter
◊ 3.2.3
Attribute
◊ 3.2.4
Events
◊ 3.2.5
Sicherheit
◊ 3.2.6
Performance
◊ 3.2.7
Browserkompatibiltät
◊ 3.2.8
Alternativen
♦ 3.3 Ergebnis
• 4 Fazit
• 5 Anhang
♦ 5.1 Quellcode des
Beispiels
♦ 5.2 Fußnoten
♦ 5.3
Abkürzungsverzeichnis
♦ 5.4
Abbildungsverzeichnis
♦ 5.5
Tabellenverzeichnis
♦ 5.6
Quellenverzeichnis
Inhaltsverzeichnis
2
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
1 Einleitung
Im Januar 2008 verabschiedete die W3C den ersten Entwurf der Spezifikation von HTML5. Da HTML 4.01
bereits seit 1999 im Einsatz ist und nicht mehr den aktuellen Anforderungen gerecht wird, beschloss die W3C
diesen Schritt zu gehen.
1.1 Aufgabenstellung
Diese Hausarbeit befasst sich im Rahmen der Veranstaltung "Wissenschaftliches Arbeiten" mit dem Thema
HTML5 in Hinblick auf Formulare und analysieren dessen Funktionen und demonstrieren diese anhand eines
Beispiels.
Formulare stellen eine der wichtigsten Schnittstellen für den Besucher zur Webseite dar. Sie bieten dem Besucher
einer Webseite die Möglichkeit mit der dieser und gegebenenfalls anderen Besuchern zu interagieren. Diese
Möglichkeiten wurden in den letzten Jahren immer interessanter und unter dem Begriff WEB 2.0 in der
Öffentlichkeit bekannt. Soziale Netzwerke wie Facebook, StudiVZ, WerKenntWen usw. setzen Formulare auf
ihren Webseiten ein, damit der Benutzer seine Daten pflegen und mit anderen Benutzern des Netzwerkes in
Kontakt treten kann.
In HTML5 wurde das Konzept der einfachen Textbox, die ihre Daten ungeprüft an den Server weitergibt komplett
überarbeitet und mit deutlich mehr Möglichkeiten ausgestattet.
1.2 Zielsetzung
Die Zielsetzung dieser Hausarbeit besteht darin, HTML5 in Hinblick auf Formulare zu analysieren und neue
Funktionen zu demonstrieren. Des Weiteren wird ein Vergleich zu Formularen in HTML 4 gezogen und
aufgezeigt welche Elemente, Attribute und Events sich geändert haben oder welche hinzugefügt wurden. Es wird
die Frage gestellt, ob diese Elemente, Attribute und Events eine sinnvolle Weiterentwicklung sind und ob sich
eine Erleichterung zum Entwickeln von Formularen ergeben hat. Außerdem werden Möglichkeiten aufgedeckt,
wie HTML Formulare alternativ entwickelt oder gestaltet werden können.
Zusätzlich wird auf die Sicherheit und die Performance von HTML5 in Bezug auf Formulare eingegangen.
1.3 Vorgehensweise
Um eine möglichst interesante und anschauliche Hausarbeit zu gestalten, dient als Grundlage dazu das Formular
"Pizza Mamamia", welches zu diesem Zweck programmiert wurde. Anhand dessen werden die neuen Funktionen
demonstriert und erklärt. Dazu wird jedes aufgezeigte Element und Attribut beschrieben und die Veränderung
gegenüber HTML 4 erläutert.
2 Grundlagen
1 Einleitung
3
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
2.1 Allgemein HTML
Hypertext Markup Language (HTML) ist eine Auszeichnungssprache zur Erstellung von Dokumenten, die
mithilfe eines Browsers angesehen werden können. Dabei liegt die Fokussierung auf der Darstellung von
Informationen, in Form von Texten, Tabellen und Bildern[1].
HTML wurde im Jahre 1989 von Tim John Berners-Lee am CERN, der europäischen Organisation für
Kernforschung, zusammen mit einem seiner Kollegen erfunden. Dabei verfolgten sie das Ziel, den Nutzen des
bereits bestehenden Internets durch den Informationsaustausch zwischen den Wissenschaftlern zu erhöhen.
Voraussetzung dafür sollte eine plattformunabhängige Text- und Bilderstellung und der Einsatz der
Hypertextfunktionalität sein. Die Hypertextfunktionalität beschreibt die Möglichkeit Querverweise von einem
Dokument ausgehend auf beliebig viele andere Dokumente einzusetzen, obwohl diese auf anderen Server
liegen[2].
Geschichte von HTML
HTML
Version
Einführungsdatum
HTML 1.0[3]
1990
HTML 2.0[4]
1995
HTML 3.2[5]
1997
HTML 4.0[6]
1998
HTML 4.01[7] 1999
XHTML 1.0[8] 2000
XHTML 2[9]
2006
HTML5[10]
2009
Merkmale
Verfügt über Standardelemente:
Überschriften, Textabsätze
Einführung der Formulare
Einführung von Tabellen, Befehle für
physischen Textauszeichnung
Einführung von Frames und Cascading Style
Sheets
Korrekturen des HTML 4.0 Standards
Neuanfang von HTML auf Basis von XML
Die Arbeiten wurden im Jahr 2009
Zugunsten von HTML5 eingestellt
Einführung eines neuen Vokabular.
Überarbeitung und Erweiterung der zu
HTML gehörenden DOM-Spezifikation,
Neue Elemente, Attribute, etc.
Tabelle 1: Versionsübersicht
HTML beruht auf der Auszeichnungssprache Standard Generalized Markup Language (SGML), die zur
Deklaration des Aufbaus von Dokumenten dient. SGML war damals für Regierungsorganisationen und ähnlichen
Instituten die Standardlösung, spielte im Internet von "heute" aber nie eine Rolle, da es eine sehr komplizierte
Sprache war. Stattdessen bauten die Browserhersteller spezielle HTML-Parser in ihre Software ein, die zum
einem weniger Komplexität besaßen und zum anderen die Möglichkeit boten auch fehlerhafte Seiten darzustellen.
Im Jahre 1994 wurde das World Wide Web Consortium (W3C) gegründet, um die verschiedenen Entwicklungen
zu strukturieren und als Standard zu definieren[11]. So die Theorie - Jedoch sah es in der Praxis anders aus. Das
W3C war immer einen Schritt hinterher, weil die Browser sich nicht unbedingt an die Standards hielten und vorab
neue Elemente etablierten, bevor das W3C diese in ihre Recommendations definierten. Aufgrund dieser nicht
optimalen Situation für das W3C wurde die Konsequenz gezogen einen ?Reset? von HTML durchzuführen und
2.1 Allgemein HTML
4
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
XHTML einzuführen. Die W3C schrieb dazu unter anderen, in einem Statement: << [..] it was agreed that further
extending HTML 4.0 would be difficult, as would converting 4.0 to be an XML application. The proposes way to
break free of these restrictions is to make a fresh start with the next generation of HTML based upon a suite of
XHTML tag-sets.>>[12] XHTML ist HTML in XML. XML ist eine universelle Auszeichnungssprache, die als
Datenaustauschformat nutzbar ist und Vektorgrafiken darstellen kann. XHTML sollte als Übergangslösung bzw.
als Vorstufe dienen. Es hat den gleichen Umfang wie HTML 4.01. Es ist eher bekannt unter XHTML 1.0. Jedoch
wurden von den Webseiten die Quellcodes weiterhin als HTML ausgeben und entsprechend mit
Tag-Soup-Parsern verarbeitet. XHTML 2.0 sollte die finale Version werden, bei der es auch kein Ausweichen auf
HTML gab. Jedoch wurde XHTML nie richtig angenommen. Es wurde bis heute in keiner Version des Internet
Explorers verarbeitet. Auch die Browserhersteller zweifelten die Praktikabilität von XHTML an, sodass Apple,
Mozilla und Opera die Web Hypertext Application Technology Working Group (WHATWG) im Jahre 2004
gründeten und an der Entwicklung einer neuen Web-Technologie Label Web Application 1.0, das spätere
HTML5, arbeiteten. Sie implementierten nach und nach erste HTML5 Features in ihre Browser, sodass im Jahre
2009 das W3C erkennen musste, dass die Weiterentwicklung an XHTML keinen Sinn mehr ergab und dass die
Zukunft bei HTML5 liegt, sodass sie die XHTML Arbeitsgruppe auflöste und stattdessen eine eigene
Arbeitsgruppe zur Entwicklung von HTML5 bildeten. Nun arbeiteten zwei Arbeitsgruppen an HTML5 und die
Unübersichtlichkeit war vorprogrammiert. Aktuell kann man noch nicht von der einen Fassung des HTML5 bzw.
von dem Standard HTML5 sprechen, wie man es zum Beispiel bei der Version 4.01 tun kann. Beide
Arbeitsgruppen veröffentlichen ihre Versionen von HTML5 und haben auch ihre eigenen Terminplanungen. Die
WHATWG plant HTML5 nicht vor 2022 mit dem Recommendation-Status zu versehen, die W3C hingegen geht
von 2010 aus. Mit der Einführung von HTML5 werden viele neue Elemente eingeführt, die Webseiten mit vielen
nützlichen Funktionen erweitern. HTML5 ist somit für die Zukunft gerüstet, ganz im Sinne des Web 2.0, bei dem
der Browser nicht mehr allein zum Betrachten von Webseiten genutzt, sondern der Funktionsbereich enorm
erweitert wird. So wird der Browser auch als E-Mail Client oder Instant Messenger genutzt. Neue Elemente, wie
<video> oder die Drag&Drop Schnittstelle sind nun etabliert, um in Zukunft auf Plugins, wie Flash oder
Java-Applets verzichten zu können. HTML5 ist abwärtskompatibel. Die Features der neuen Elemente sind auf
älteren Browsern, ohne HTML5 Unterstützung, nicht erkennbar, jedoch wird das Element als das bekannte <input
type="text"> Element interpretiert und kann dadurch weiter genutzt werden[13].
HTML Dokumente
HTML ist eine Sprache, die mittels einer Syntax und spezieller Anweisungen zur Darstellung von Texten,
Tabellen und Bildern, der Strukturierung und der Erstellung eines Layouts von Dokumenten dient. Über
Hyperlinks können einzelne Dokumente interaktiv gestaltet und mit anderen Dokumenten auf dem eigenen oder
anderen Servern verknüpft werden. Das mit HTML erstellte Dokument hat die Endung ?.html? oder ?.htm? und
wird auf dem Server liegend über das Hypertext Transfer Protokoll (HTTP) und einem Browser aufgerufen,
interpretiert und dargestellt[14]. Zudem können HTML Dokumente in E-Mails übertragen und mit kompatibler
E-Mail Software dargestellt werden. Durch die jüngste Entwicklung im Bereich des mobilen Internets sind zudem
immer mehr mobile Browser fähig HTML Dokumente darzustellen[15].
Um ein HTML Dokument zu erstellen kann man einen HTML-Editor, wie z.B. Notepad++, PSPad oder den
einfachen Texteditor verwenden. Der Vorteil bei der Nutzung eines HTML-Editors liegt unter anderem in der
Syntaxhervorhebung, der Autovervollständigung und der Vorschaufunktion[16]. Das Grundgerüst eines HTML
Dokumentes ist immer gleich und sieht wie folgt aus:
<html>
<head>
<titel>Titel des HTML Dokumentes</titel>
Informationen über das HTML Dokument
2.1 Allgemein HTML
5
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
</head>
<body>
Inhalt des HTML Dokuments
</body>
</html>
Struktur eines HTML-Dokumentes[17]
<head>
Das "head" Element ist der Dokumentenkopf, der Informationen über das jeweilige HTML-Dokument enthält. Er
wird in der Regel nicht im Browser angezeigt.
<title>
Dieses Element nennt die Titel des Dokumentes und ist zwingend anzugeben, da es oft von Suchmaschinen
benutzt wird.
<body>
Hier wird der im Browser sichtbare Inhalt eingegeben, wie Texte, Bilder, Tabellen etc.
2.2 Einsatz von Formularen
Formulare bieten dem Besucher einer Webseite die Möglichkeit zur Dateneingabe. Sie bilden die Schnittstelle
zwischen dem Besucher und der Webseite[18]. Der Besucher kann seine Daten über Eingabefelder, mehrzeiligen
Textfeldern, Listen usw. eingeben[19].
Formulare können verschieden eingesetzt werden. Zum einen um "bestimmte, gleichartig strukturierte Auskünfte
von Anwendern einzuholen"[20], den "Anwendern das Suchen in Datenbeständen zu ermöglichen"[20] oder "die
Möglichkeit zugeben, selbst Daten für einen Datenbestand beizusteuern"[20]. Zum anderen um "dem Anwender
die Möglichkeit individueller Interaktion zu bieten um aus einer Produktpalette etwas bestimmtes zu
bestellen"[20].
Formulare finden sehr häufig Verwendung. Um einen Überblick zu verschaffen eine kleine Auflistung von
Formularbeispielen:
• Kontaktformulare
• Webmailer
• Online-Shops
• Hochladen von Dateien
• Suchmaschinen etc.
Ein sehr bekanntest Beispiel für ein Formular ist die Suche von Google.
2.2 Einsatz von Formularen
6
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
3 Analyse
3.1 Anwendungsbeispiel
Unser Anwendungsbeispiel ist ein, für diese wissenschaftliche Arbeit erstelltes, Formular mit dem Namen "Pizza
Mamamia". Es stellt ein Bestellformular eines Pizza-Lieferanten dar. Anhand dieses Beispiels werden die neuen
und alten Funktionen in einem Formular dargestellt. Dieses Anwendungsbeispiel ist die Grundlage auf die unsere
Analyse basiert. Das heißt, dass die modifizierten und neuen Elemente und Attribute anhand dessen erklärt und
aufgezeigt werden.
Das Formular "Pizza Mamamia" im Browser Opera 11.
3 Analyse
7
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
3.1 Anwendungsbeispiel
8
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Abbildung 1 - Anwendungsbeispiel "Pizza-Bestellformular"
Der Quellcode des Beispiels ist im Anhang unter 5.1.
3.2 Vergleich HTML4 vs. HTML5
In HTML5 wurden im Vergleich zu HTML4 viele neue Elemente, Attribute und Events hinzugefügt bzw.
erweitert. Diese Tatsache bietet Web-Entwicklern die Möglichkeit Funktionen einzusetzen für die in HTML4
noch der Einsatz von JavaScript zwingend nötig war.
Im folgenden Abschnitt werden wir genauer auf die neuen bzw. erweiterten Elemente, Attribute und Events
eingehen und diese anhand von Beispielen exemplarisch darstellen. Auf die Änderungen zu HTML4 werden wir
falls nötig näher eingehen.
3.2.1 Modifizierte Elemente
3.2.1.1 form
Im Gegensatz zu HTML4 muss das form-Element nicht mehr zwingend um ein Eingabefeld in einem Formular
sein. In HTML5 ist es um ein neues form-Attribut für Eingabeelemente erweitert worden. Durch eine
Verknüpfung des form-Elements mit einer ID und einem Namen des form-Attributs eines Eingabefeldes, welches
auf diese ID passt, gehört das Element zum Formular. Egal an welcher Stelle im Dokument sich die einzelnen
Teile befinden[21].
Auflistung über alle Elemente, die sich so einem Formular zuordnen lassen:
• button
• fieldset
• input
• keygen
• label
• meter
• object
• output
• progress
• select
• textarea
Im Beispiel befindet sich das output-Element aktivitaet außerhalb des Formulars mit der id="aktivitaet". Über
JavaScript in den Attributen onformchange, onforminput und onsumbit wird im output-Feld die jeweilige Aktion
angezeigt.
<form action="bestellung_abschicken.html" name="formular_pizza_bestellung"
3.2 Vergleich HTML4 vs. HTML5
9
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
onformchange="javascript:aktivitaet.innerHTML = 'Formular wurde geändert';"
onforminput="javascript:aktivitaet.innerHTML = 'Es wird gerande eine Eingabe getätigt';"
onsubmit="javascript:alert('Bestellung wird geprüft und versendet.');">
<input type="hidden" name="page" value="mamamia">
...
<table>
<tr>
<td><output for="aktivitaet" id="aktivitaet"></output></td>
</tr>
</table>
Abbildung 2 - Ausgabe außerhalb von Form-Elementen
3.2.1.2 legend
In HTML 4.01 konnte das legend-Tag nur im fieldset-Element benutzt werden. Es dient als Überschrift für den
Inhalt eines Blocks. In HTML5 werden die Elemente <fieldset>, <figure> und <details> unterstützt[22]. Dadurch
wird der Inhalt des Elements für den Benutzer verständlicher[23].
...
<fieldset>
<legend><strong>Fortschritt:</strong></legend>
Bestellvorgang:
<progress max="3" value="2">Schritt 2 von 3</progress> <meter value="0.66">66%</meter>
<br />
Bestellnummer: <input type="text" name="bestellnummer" value="2010-12-24.234" readonly>
</fieldset>
...
3.2.1.1 form
10
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Abbildung 3 - Überschrift für Elemente mit legend
3.2.1.3 input
In HTML5 wurde das input-Element verglichen mit anderen Elementen stark verändert. Hatte dieses in HTML
4.01 lediglich nur einen type-Zustand <input type="text">, so können dem modifizierten input-Element in
HTML5 viele neue Typen zugeteilt werden, die dem Formular nützliche Funktionen zur Verfügung stellen, die
sonst nur durch aufwändige Skripte realisierbar waren[24].
search
Der input-Typ search ist eine Ergänzung bzw. Weiterentwicklung zum "alten" Typ <input type=text>. Das
Suchfeld wird dabei an die Suchmasken der jeweiligen Plattform angepasst, so dass ggf. CSS-Formatierungen
ignoriert werden[24].
<input type="search">
Besonderheit:
Das iPhone passt beim Aufruf einer Website mit dem Eingabefeld input die Tastatur entsprechend an.
3.2.1.2 legend
11
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Abbildung 4 - iPhone Tastatur (search)
telephone
Mit dem input-Typ telephone soll ein Eingabefeld für eine Telefonnummer bereitgestellt werden. Die Eingabe
erfordert jedoch kein bestimmtes Format. Lediglich Zeilenumbrüche werden ignoriert. Die Funktionen des Feldes
sind vergleichbar mit denen von normalen Text-Feldern[24].
<input type="telephone">
url
Der Typ url ist für die Eingabe von URLs gedacht, wobei dieses Feld eine Besonderheit hat. Es verfügt über eine
eingebaute Validierungsregel, mit der Syntaxüberprüfungen vorgenommen werden können[24].
<input type="url">
Besonderheit:
Das iPhone passt beim Aufruf einer Website mit dem Eingabefeld input die Tastatur entsprechend an.
3.2.1.3 input
12
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Abbildung 5 - iPhone Tastatur (url)
email
Das Eingabefeld vom Typ email verfügt ebenfalls über eine eingebaute Validierungsregel (vergleiche url). Mit ihr
kann ebenfalls auf die korrekte Syntax-Eingabe der E-Mail geprüft werden, ohne dies über aufwändige
Java-Skripte realisieren zu müssen[24].
...
<tr>
<td>Email:*</td>
<td><input type="email" name="mail" title="Bitte eine gültige E-Mail Adresse eingeben: " required
</tr>
...
</form>
3.2.1.3 input
13
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Abbildung 6 - Eingabefeld E-Mail in Opera
Besonderheit:
Das iPhone passt beim Aufruf einer Website mit dem Eingabefeld input die Tastatur entsprechend an.
Abbildung 7 - iPhone Tastatur (email)
date und time
Beide Input-Typen stellen neue Funktionen für die Eingabe von Datums- und Zeitangaben im Browser bereit. Mit
date wird die Auswahl eines Datums ermöglicht. Time stellt eine Auswahl für die Uhrzeit zur Verfügung. Im
Browser werden für diese Auswahl neue Formularwidgets angeboten, die als Datumspicker oder
Zeitauswahlfelder auftreten[25].
3.2.1.3 input
14
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
...
<tr>
<td>Zeitpunkt</td>
<td><input type=datetime name="meeting.start" ><input type="text" name="datum" placeholder="YYYY</tr>
...
Abbildung 8 - Datums- und Zeitangaben
datetime und datetime-local
Beide Elemente arbeiten genauso wie das date-Element mit Formularwidgets, bei denen ein Datumspicker bei der
Auswahl angezeigt wird. Dort wird zum gewünschten Datum per Mausklick navigiert und ausgewählt. Der
Unterschied zwischen den beiden Elementen besteht darin, dass beim datetime-Element die UTC-Zeitzone mit
angegeben wird und beim datetime-local nicht. Bei einem Eintrag 16.12.2010 würde das DOM-Attribute value
den Datumsstring 2010-12-16T19:50z zurück liefern. Das z steht für die jeweilige UTC-Zeitzone. Das Element
datetime-local würde den Datumsstring 2010-12-16T19:50 als Ergebnis zurück geben[26].
month und week
Mit diesen beiden Elementen werden die Auswahl eines Monats (month) oder einer Kalenderwoche (week)
ermöglicht.
number
Durch den input-Typ number wird ein Feld für die Eingabe von Zahlen bereitgestellt. Die Eingabe kann über die
Tastatur oder über entsprechende Kontrollelemente im jeweiligen Browser erfolgen. In Verbindung mit den
Attributen min und max kann der Zahlenbereich eingeschränkt werden. Die Werte können beliebige
Fließkommazahlen sein, bei denen der min-Wert kleiner als der max-Wert gewählt werden sollte. Durch die
3.2.1.3 input
15
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Ergänzung des Attributs step kann die Sprungweite der Zwischenschritte über die Kontrollelemente im Browser
reguliert werden. Wird das Attribut nicht angegeben, so wird der default-Wert von 1 genutzt. Dies gilt nicht für
Eingaben über die Tastatur, bei der auch Nicht-Zahlenwerte eingegeben werden können. Diese werden nicht
automatisch abgefangen und muss separat über die Validierungs-API von HTML5 geprüft werden[27].
Im folgenden Beispiel lassen sich die Werte 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 und 10 einstellen, da als step-Wert 1.0
definiert wurde.
...
<td><input type="number" min="0" max="10" step="1.0" size="3"></td>
...
Abbildung 9 - Eingabefeld number mit Step 1.0 in Opera
Besonderheit:
Das iPhone passt beim Aufruf einer Website mit dem Eingabefeld input die Tastatur entsprechend an.
3.2.1.3 input
16
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Abbildung 10 - iPhone Tastatur (number)
range
Mit dem input-Typ range kann eine Zahl zwischen den durch min und max gesetzten Grenzwerten ausgewählt
werden. Dargestellt wird diese Auswahl im Browser als Schieberegler. Auch hier kann durch das Attribut step
(wie beim number-Attribut) die Größe der möglichen Zwischenschritte festgelegt werden. Der default-Wert bei
keiner Angabe ist ebenfalls 1[28].
...
<tr>
<td><label for="input_gericht_salami">Salami</label></td>
<td><input type="checkbox" name="gericht_salami" id="input_gericht_salami"></td>
<td><input type="number" min="0" max="10" step="1.0" size="3"></td>
<td>10 cm<input type="range" min="10" max="50" value="30" step="5" name="size_salami" list="sizes
<td><input type="text" name="gewuerze_salami" autocomplete="on" list="gewuerze" multiple="multipl
</tr>
...
3.2.1.3 input
17
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Abbildung 11 - Eingabefeld range mit Step 1.0 in Opera
color
Der Typ color stellt eine Farbauswahl zur Verfügung. Damit kann ein bestimmter Farbwert (z.B. #FFFF00)
ausgewählt werden. Die Angabe des Farbwertes erfolgt mit dem Hashtag # gefolgt von der Ziffernfolge
[A-Fa-f0-9]. Jedoch wird dieses Formularelement bisher in keinem Browser unterstützt[28].
Ein beispielhafter Code-Ausschnitt:
<input type="color">
checkbox
Beim checkbox Element wird mit dem Attribut indeterminate ein neuer, zusätzlicher "unbestimmter" Zustand zur
Verfügung gestellt. Dieser lässt nicht erkennen, ob die checkbox angehakt wurde oder nicht[29]. Dieser neue
Status ist nur für die Darstellung der checkbox zuständig und lässt erkennen, ob die checkbox aktiviert ist. Das
Aktivieren der Checkbox muss aktiv über den Benutzer erfolgen oder über das checked-Attribut[30].
<input type="checkbox" id="alpha">
<input type="checkbox" id="beta">
<input type="checkbox" id="gamma" checked>
<script>
document.getElementById('beta').indeterminate = true;
</script>
radio button
Mehrere radio-buttons können zu einer Gruppe zusammengefasst werden. Sie stehen im input-Element und haben
den Typ radio. Bei einer Gruppe von radio-Buttons, aus der eine Auswahl getroffen werden soll, müssen alle
Elemente den gleichen Namen über das Attribut name bekommen. Dieses Zusammenfassen von Gruppen kann
mit dem fieldset-Element verknüpft werden[31].
3.2.1.3 input
18
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Die Größe einer Pizza könnte somit in einem Formular abgefragt werden. Für die optische Aufbereitung wird das
Element legend benutzt, so dass die Überschrift im Rahmen platziert ist.
...
<fieldset>
<legend>Versand</legend>
<table>
<tr>
<td>Versandart:</td>
<td>
<input type=radio name="versandart" value="express" id="versandart_express"><label for="ver
<input type=radio name="versandart" value="standart" id="versandart_express"><label for="ve
</td>
</tr>
<tr>
<td>Zeitpunkt</td>
<td><input type=datetime name="meeting.start" ><input type="text" name="datum" placeholder="Y
</tr>
</table>
</fieldset>
...
Abbildung 12 - Gruppe von Radio-Buttons in Opera
file upload
Der Typ file-upload wird über type=file im input-Element angegeben. Durch die Erneuerungen in HTML5 lassen
sich nun verschiedene Validierungsregeln nutzen, so dass Eingaben von z.B. einem bestimmten File-Typ (Audio)
überprüft werden oder die Auswahl eines Files erforderlich ist. So kann beispielsweise über das Attribut multiple
eine Liste von mehreren Dateien angegeben werden. Damit aus einem übergebenen Pfad nur der Dateiname
extrahiert wird, kann das folgende Konstrukt verwendet werden (es unterscheidet zwischen Windows- und
UNIX-Pfadangaben)[32].
function extractFilename(path) {
var x;
x = path.lastIndexOf('\\');
if (x >= 0) // Windows-based path
return path.substr(x+1);
x = path.lastIndexOf('/');
if (x >= 0) // Unix-based path
3.2.1.3 input
19
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
return path.substr(x+1);
return path; // just the filename
}
<p><input type=file name=image onchange="updateFilename(this.value)"></p>
<p>The name of the file you picked is: <span id="filename">(none)</span></p>
<script>
function updateFilename(path) {
var name = extractFilename(path);
document.getElementById('filename').textContent = name;
}
</script>
Die neuen Attribute vom Typ input[33]:
Attribut
Wert
Beschreibung
Bei on werden die Daten im Browser gespeichert und
es kann eine Autovervollständigung vorgenommen
werden. Bei off werden keine Informationen im
Browser gespeichert.
Das input-Feld ist während des Ladens der Seite
sichtbar. Hinweis: Nicht im Zusammenhang mit dem
Typ hidden nutzbar.
Definiert die Zugehörigkeit zu einem oder mehreren
form-Elementen.
Wohin die Daten bei Ausführung hin geschickt
werden sollen. Die auszuführende Aktion vom
form-Tag wird überschrieben.
autocomplete
on
off
autofocus
autofocus
form
<form-name>
formaction
<url>
formenctype
application/x-www-form-urlencoded
multipart/form-data
text/plain
Wie sollen die Daten kodiert werden bevor sie an
einen Server übertragen werden. Das Attribut enctype
aus dem form-Tag wird überschrieben.
formmethod
get
post
formnovalidate
formnovalidate
Wie sollen die Daten an einen Server gesendet
werden. Das Attribut action aus dem form-Tag wird
überschrieben.
Das Formular soll nicht validiert werden. Dies setzt
das novalidate-Attribut im form-Tag außer Kraft.
formtarget
_blank
_self
_parent
_top
<frame-name>
Gibt an wo die URL geöffnet werden soll und
überschreibt das target-Attribut aus dem form-Tag.
height
<pixel>
<Prozentangabe %>
Definiert die Höhe in einem Input-Feld und ist nur
nutzbar mit dem Typ image.
list
<datalist-id>
max
<number>
<date>
3.2.1.3 input
Eine datalist mit vordefinierten Optionswerten der
input-Elemente wird angegeben.
Legt den maximalen Wert des Input-Felds fest. Kann
mit min verwendet werden, um einen Bereich zu
20
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
definieren.
min
<number>
<date>
multiple
multiple
pattern
<regulärer Ausdruck>
placeholder
<text>
required
required
step
<number>
Es können mehrere Werte angegeben werden.
Kann den Wert für ein Input-Feld bestimmen. Mit
pattern="[0-9]" muss eine Zahl zwischen 0 und 9
eingegeben werden.
Gibt dem Benutzer durch einen vordefinierten Text
eine Hilfe zur möglichen Eingabe.
Kennzeichnet ein Pflichtfeld und muss zum Absenden
des Formulars ausgefüllt werden.
Gibt in einem Bereich die Sprungweite an.
width
<pixel>
<Prozentangabe %>
Definiert die Breite in einem Input-Feld und ist nur
nutzbar mit dem Typ image.
Legt den minimalen Wert des Input-Felds fest.
3.2.1.4 button
Das button-Element wurde hinsichtlich seiner Attribute verändert. So unterstützt es nun in der HTML5 Version
die Attribute formaction, formenctype, formmethod, formnovalidate und formtarget[34].
Mit dem button können Buttons/Knöpfe in einem Formular dargestellt werden. Die Gestaltung erfolgt entweder
in Textform oder mit Hilfe eines Bildes. Bei den Attributen sollte immer der type mit angegeben werden, da
dieser unterschiedlich von den verschiedenen Browsern bewertet werden kann[35][36].
3.2.1.5 select
Auch dem select-Element wurden neue Attribute hinzugefügt[37]. Mit Hilfe des select-Elements wird eine
Drop-Down Liste zur Verfügung gestellt. Die zur Auswahl bereitgestellten Elemente werden über das Tag option
angegeben. Eine Referenzierung über das form-Attribut zur form-id im form-Element ist möglich[38].
3.2.1.6 option
Das option-Element kann nun in HTML5, anders als in HTML4, auch im <datalist>-Element verwendet werden.
Weitere Anwendungselemente sind select und optgroup[39]. Die Attribute im option-Element müssen nicht
angegeben werden, wobei die Angabe eines Wertes im value-Attribut sinnvoll ist. Diese Angabe wird letztendlich
an den Server gesendet und kann dort weiterverarbeitet werden[40].
3.2.1.7 textarea
Mit dem textarea-Element wird eine Mehrzeiliges Eingabefeld für Benutzer-Eingaben bereit gestellt. Interessante,
neue Attribute sind neben den Attributen form, autofocus und required, die Attribute maxlength, placeholder und
wrap, die in HTML 4 noch keine Verwendung fanden[41].
3.2.1.4 button
21
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Attribute
Wert
maxlength
<number>
placeholder
<text>
wrap
hard
soft
Beschreibung
Legt die maximale Anzahl an zulässigen Zeichen in der
Eingabe-Box fest.
Soll dem Benutzer einen Hinweis zur Ausfüllung der
Eingabe-Box geben.
Wie soll mit dem Inhalt nach dem Abschicken umgegangen
werden. Bei "hard" werden Zeilenumbrüche bei den "Spalten"
durchgeführt und bei "soft" (entspricht dem default) nicht.
3.2.1.8 fieldset
Das fieldset-Element legt einen Rahmen um einen Bereich. Es können die Attribute name und disabled verwendet
werden. Mit name wird dem fieldset ein eindeutiger Name über den Parameter value gegeben. Mit Hilfe von
disabled kann das gesamte fieldset-Element ausgeblendet werden. Dies kann z.B. hilfreich sein, wenn andere
Parameter noch nicht ausgefüllt wurden und für das fieldset-Element zwingend erforderlich sind[42][43].
3.2.2 Neue Elemente
3.2.2.1 label
Das label-Element gibt einem Element eine Bezeichnung/Titel. Eine besondere Bedeutung hat das for-Attribut,
welches den gleichen Namen wie das ID-Attribut eines input-Feldes haben sollte, wenn diese zusammen gehören
sollen[44].
<form>
<label
<input
<br />
<label
<input
</form>
for="male">Male</label>
type="radio" name="sex" id="male" />
for="female">Female</label>
type="radio" name="sex" id="female" />
3.2.2.2 datalist
Mit diesem Element kann man eine Art Auto-Vervollständigung für Input-Elemente erzeugen. Es werden
verschiedenen, vordefinierte Werte für ein Eingabefeld bereit gestellt. Das datalist-Element ist somit ein
unsichtbares Element, dass als Platzhalter für eine Anzahl von Options-Elementen dienen kann. Eine
Verknüpfung zwischen input- und datalist-Elementen wird über einen ID-Namen hergestellt[45].
...
<tr>
<td>Name*</td>
<td><input type="text" name="name" autocomplete="on" list="name" required /></td>
</tr>
...
<datalist id="name">
3.2.1.7 textarea
22
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
<option value="Andreas Schreiber">
<option value="Daniel Dreissen">
<option value="Tom Reißberg">
<option value="Ivo Marx">
</datalist>
...
Abbildung 13 - datalist-Element mit autocomplete
3.2.2.3 optgroup
Das optgroup-Tag ermöglicht es in Drop-Down Menüs die Auswahl zu gruppieren und mit nicht auswählbaren
Überschriften zu versehen[46][47].
<select name="plz">
<optgroup label="Düsseldorf">
<option value ="40210">40210</option>
<option value ="40211">40211</option>
<option value ="40212">40212</option>
<option value ="40213">40213</option>
</optgroup>
<optgroup label="Köln">
<option value="50667">50667</option>
<option value="50668">50668</option>
</optgroup>
<optgroup label="Remscheid">
<option value="42857">42857</option>
<option value="42859">42859</option>
</optgroup>
</select>
3.2.2.2 datalist
23
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Abbildung 14 - Drop-Down Menü mit Überschriften
3.2.2.4 keygen
Das keygen-Element ist ein Element zur Erstellung eines Schlüsselgenerators. Durch die Auswahl wird der
Private Key im lokalen Speicher abgelegt. Der Public Key wird verpackt und zum Server gesendet[48].
<label for="key">Schlüsselstärke</label>
<keygen keytype="rsa" name="schluessel" id="key">
<input type="submit" value="Senden">
Mit Hilfe des keytype-Attributs ist es möglich die Art des Schlüssels auszuwählen, die erzeugt werden soll.
Aktuell ist ausschließlich die Auswahl von RSA möglich. Jedoch lässt die Spezifikation offen, ob und auf welche
Weise der jeweilige Browser ein Interface bereitstellt. Firefox und die Webkit-Familie stellen zwei Stufen zur
Verfügung. Andere z.b. Opera hingegen bieten eine ausführlichere Auswahl an[49].
Abbildung 15 - Keygen
3.2.2.5 output
Das Output-Element zeigt das Ergebnis, z.B. einer Berechnung, an. Dessen Funktionsweise ist vergleichbar mit
der eines "normalen" Input-Elements. Der Unterschied liegt darin, dass der Inhalt nicht vom Benutzer,sondern
vom System (also das Ergebnis einer Operation) eingefügt wird[50].
<label for="ergebnis">Ergebnis:</label>
<output for="a b" id= "ergebnis"></output>
3.2.2.6 progress
Das Progress-Element soll zur Fortschrittsanzeige, wie z.B. bei Installationen, Ladevorgängen oder
Rechenoperationen, dienen. Mit Hilfe des max-Attributs kann die Anzahl der Schritte bis zum Ende definiert
3.2.2.3 optgroup
24
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
werden. Das value-Attribut gibt Auskunft über den aktuellen Stand der Operation[51]. Fehlt allerdings dieses
Attribut, so ist kein genauer Status über die aktuelle Operation bekannt. Unterstützt wird das Element aber bisher
noch in keinem Browser[52].
<h1>Installation Pizza-Spiel</h1>
<p>
<progress max="5" value="2">Schritt 2 von 5</progress>
</p>
3.2.2.7 meter
Mit dem Meter-Element kann die Anzeige von Werten zwischen einem Minimal- und Maximalwert dargestellt
werden. So könnte zum Beispiel der belegte Speicherplatz grafisch dargestellt werden[53].
<h1>Festplattenplatz: </h1>
<p>
Disk Usage: <meter value="0.71">71%</meter>
</p>
3.2.3 Attribute
Attribute können auf Formularelemente angewendet werden. Diese beeinflussen das Element in seiner Funktion
und das Verhalten beim Senden der Daten.
autocomplete
Das Attribut autocomplete hat 3 Zustände. Diese sind on, off und default. Wobei default bei keiner Angabe des
Attributs automatisch gesetzt wird und den Standartwert des Browsers lädt.
Der Zustand off deaktiviert die Autovervollständigung für input-Elemente. Dieses Attribut ist z.B. sinnvoll bei der
Eingabe von Benutzernamen. So ist gewährleistet, dass der Benutzername nicht vom Browser ausgegeben wird
und ein Unbefugter nur noch das Passwort braucht[54].
<input type="text" name="ac" autocomplete="off">
<input type="text" name="ac" autocomplete="on">
Abbildung 16 - Beispiel autocomplete
list
Mit dem Attribut list kann einem Input-Element eine data-list-Element mitgegeben werden. Das datalist-Element
3.2.2.6 progress
25
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
enthält Datensätze, die dem Benutzer mit einem Klick oder durch die Eingabe in das Element als Möglicher Inhalt
angeboten wird. So könnten z.B. in einem Formular Gewürze hinterlegt werden die für die Eingabe der Zutaten
vorgeschlagen werden[54].
<input type="text" name="gewuerze_salami" autocomplete="on" list="gewuerze" multiple="multiple">
<datalist id="gewuerze">
<option value="Oregano">
<option value="Knoblauch">
<option value="Salz">
<option value="Pfeffer">
</datalist>
Abbildung 17 - Beispiel list
readonly
Mit dem Attribut readonly können Elemente zur Eingabe gesperrt werden. Die Elemente geben dann nur den
vordefinierten Wert aus und übertragen diesen[54].
<input type="text" name="sollwert" value="100" readonly>
Dieses Attribut war bereits in HTML4 im gleichen Umfang verfügbar.
size
Das Attribut size beschreibt die Größe des Elements[54].
<input type="text" name="test" size="3">
Dieses Attribut war bereits in HTML 4 im gleichen Umfang verfügbar.
required
Das Attribut required besagt, dass ein Element zwingend gefüllt werden muss, ansonsten kann das Formular nicht
abgeschickt werden[54].
<input type="text" name="name" autocomplete="on" list="name" required>
3.2.3 Attribute
26
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Abbildung 18 - Beispiel required
multiple
Mit dem Attribut multiple können in ein Element mehrere Werte mit einem Komma getrennt eingegeben werden.
Dies ermöglicht z.B. bei der Eingabe mehrerer E-Mail-Adressen die Gültigkeit jeder Adresse zu prüfen.
Cc: <input type=email multiple name=cc list=contacts>
<datalist id="contacts">
<option value="[email protected]">
<option value="[email protected]">
<option value="[email protected]">
<option value="[email protected]">
</datalist>
[54]
Abbildung 19 - Beispiel multiple
maxlength
Das Attribut maxlength beschreibt die maximale Anzahl von Zeichen, die in das Element eingetragen werden
können.
<input type="text" name="test" maxlenght="10">
Dieses Attribut war bereits in HTML 4 im gleichen Umfang verfügbar.
pattern
Mit dem Attribut pattern können die Eingaben mit regulären Ausdrücken geprüft werden. Das Formular kann erst
abgeschickt werden, wenn die Prüfung anhand der regulären Ausdrücke erfolgreich ist. Dieses Attribut kann z.B.
zur Prüfung von Seriennummern oder Bestellnummern benutzt werden[54].
Seriennummer:
<input pattern="[0-9][A-Z]{3}" name="seriennummer">
3.2.3 Attribute
27
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Abbildung 20 - Beispiel pattern
min/max
Durch die Verwendung des min bzw. max Attributes können z.B. bei der Verwendung eines Input-Elements mit
dem Typ number, minimal und maximal Werte definiert werden[54].
<input type="range" min="10" max="50" value="30" step="5" name="size_salami" list="sizes">
step
Mit dem Attribut step kann z.B. die Schrittweite bei dem Input-Element mit dem Typ range eingestellt werden.
<input type="range" min="10" max="50" value="30" step="5" name="size_salami" list="sizes">
Abbildung 21 - Beispiel step
placeholder
Mit dem Attribut placeholder können dem Benutzer Hilfestellungen bei der Eingabe der Daten in dem Formular
gegeben werden. So können z.B. Formatvorlagen für Datumseingaben eingeblendet werden[54].
<input type="text" name="datum" placeholder="YYYY-MM-DD">
Abbildung 22 - Beispiel placeholder
novalidate
Mit Hilfe des Attributs novalidate kann in einem Formular erzwungen werden, dass die Eingaben vor dem
Versenden nicht überprüft werden[55].
<form action="" novalidate>
width/height
3.2.3 Attribute
28
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Mit den Attributen width und height kann die Größe eines Input-Elementes bestimmt werden[55].
<input type="text" name="test" width="24" height="24">
autofocus
Mit dem Attributen autofocus kann ein Element im Formular bestimmt werden, welches beim Laden der Seite
automatisch in den Focus gelangen soll[55].
<input type="text" name="user_name"
autofocus="autofocus">
3.2.4 Events
Allgemeines zu Event-Handlern
>>[..]Event-Handler (Ereignisbehandler) sind ein wichtiges Bindeglied zwischen HTML und JavaScript.
Event-Handler werden meist in Form von Attributen in HTML-Tags notiert. Da es sich um Bestandteile handelt,
die innerhalb von HTML vorkommen, hat das W3-Konsortium die Event-Handler mittlerweile auch in den
HTML-Sprachstandard mit aufgenommen. Dort wird auch festgelegt, in welchen HTML-Tags welcher
Event-Handler vorkommen darf.
Event-Handler erkennen Sie daran, dass solche HTML-Attribute immer mit on beginnen, zum Beispiel onclick.
Hinter dem Istgleichzeichen notieren Sie - in Anführungszeichen, eine JavaScript-Anweisung. Wenn Sie mehrere
Anweisungen ausführen wollen, dann definieren Sie sich dazu am besten in einem JavaScript-Bereich eine Seite
Funktion und rufen hinter dem Istgleichzeichen diese Funktion auf, also z.B. onclick="Umrechnen()".
Jeder Event-Handler steht für ein bestimmtes Anwenderereignis, onclick etwa für das Ereignis "Anwender hat mit
der Maus geklickt". Der Anzeigebereich des HTML-Elements, in dem der Event-Handler notiert ist, ist das
auslösende Element. Wenn der Event-Handler onclick beispielsweise in einem Formular-Button notiert wird, wird
der damit verknüpfte JavaScript-Code nur dann ausgeführt, wenn der Mausklick im Anzeigebereich dieses
Elements erfolgt[..].<<[56]
Events in HTML4 sowie HTML5
onblur
"Das onblur-Event wird ausgeführt wenn ein Element den Fokus verliert. Entweder durch das Zeigegerät oder
durch eine Tab-Navigation. Es kann mit den gleichen Elementen wie onfocus verwendet werden."[57]
onblur="javascript:this.style.border = 'solid green 1px'"
Abbildung 23 - Beispiel onblur
3.2.4 Events
29
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
onchange
"Das onchange Event wird ausgeführt wenn ein Steuerelement den Fokus verliert und der Wert sich nach der
Fokussierung geändert hat. Das Attribute kann in folgenden Elementen verwendet werden: INPUT, SELECT und
TEXTAREA."[58]
onchange="javascript:this.form.info.innerHTML = 'Ok, machen wir ;)'"
Abbildung 24 - Beispiel onchange
onfocus
"Das onfocus Event wird ausgeführt, wenn ein Element durch das Zeigegerät oder durch eine Tab-Navigation den
Fokus erhält. Das Attribut kann in folgenden Elementen verwendet werden: A, AREA, LABEL, INPUT,
SELECT, TEXTAREA und BUTTON."[59]
onfocus="javascript:this.style.border = 'solid blue 1px'"
Abbildung 25 - Beispiel onfocus
onreset
"Das Onreset-Event wird ausgeführt, wenn ein Formular resetet wird. Das Attribute kann ausschließlich mit dem
Form-Element verwendet werden."[60]
Onreset=?javascript:alert(?Sie haben das Formular resetet.?)?
onselect
"Das Onselect-Event wird ausgeführt, wenn ein User Text in einem Textfeld markiert. Das Attribut kann in
folgenden Elementen verwendet werden: INPUT und TEXTAREA"[61]
<input type="text" name="gutscheinnr" value="123.456.789" onselect="javascript:alert('Sie Sparfuchs')
3.2.4 Events
30
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Abbildung 26 - Beispiel onselect
onsubmit
"Das Onsubmit-Event wird ausgeführt, wenn ein Formular abgeschickt wird. Das Attribute kann ausschließlich
mit dem Form-Element verwendet werden."[62]
onsubmit="javascript:alert('Bestellung wird geprüft und versendet.');"
Neue Events in HTML5
onformchange
"Das Script startet, wenn sich das Formular verändert."[63]
onformchange="javascript:aktivitaet.innerHTML = 'Formular wurde geändert';"
Abbildung 27 - Beispiel onformchange
onforminput
"Das Script startet, wenn im Formular eine Eingabe erfolgt."[64]
onforminput="javascript:aktivitaet.innerHTML = 'Es wird gerade eine Eingabe getätigt';"
Abbildung 28 - Beispiel onforminput
oninput
"Das Script startet, wenn in einem Element des Formulars eine Eingabe erfolgt."[65]
3.2.4 Events
31
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
oninput="javascript:this.form.info.innerHTML = 'Ohje, was kommt denn jetzt?'"
Abbildung 29 - Beispiel oninput
oninvalid
"Das Script startet, wenn ein Element ungültig ist."[66]
<input
type="text"
pattern="[A-Za-z]+[.]? [0-9]+"
name="straße"
oninvalid="javascript:this.form.aktivitaet.innerHTML='Sie haben einen Fehler im Feld Straße gemach
required
>
Abbildung 30 - Beispiel oninvalid
3.2.5 Sicherheit
Der Sicherheitsaspekt spielt schon lange eine wichtige Rolle bei Formularen, da sie eine große Angriffsfläche
bieten. Sie sind der einzige Teil einer Website, über den Anwender bzw. Besucher einer Website interaktiv
agieren können. Die Besucher geben mittels Formularen Daten ein, die dann weiter verwendet werden. Eine
bekannte Sicherheitslücke ist das Cross-Site-Scripting (XSS). Wenn im Input-Element ein Javascript-Code
eingegeben wird und das Formular nach Absenden nochmals für den Anwender als Übersicht angezeigt wird,
interpretiert der Browser diesen Code und führt ihn aus. So können andere Webseiten dargestellt werden, auf
andere Webseiten weiter geleitet werden oder ein Schadcode ausgeführt werden. Ein anderes beispielhaftes
Sicherheitsloch sind Spamscripte. Spamscripte füllen alle Felder eines Formulars automatisch aus und versenden
es. Mittlerweile gibt es einfache Lösungswege, die diese Sicherheitslücken beseitigen. Bei XSS sollte man alle
eingegebenen Texte sorgfältig prüfen lassen und Schlüsselworte, die eine Scriptsprache charakterisieren, filtern
und sperren. Ein Spamscript kann zum Beispiel durch ein für den Menschen unsichtbares Eingabefeld verhindert
werden. Wenn dieses Feld trotzdem ausgefüllt wird, weiß man, dass es sich um ein Spamscript handelt. Zwar kein
technisches Sicherheitsproblem, jedoch ebenfalls erwähnenswert ist die Tatsache, dass Anbieter eine Webpage
Formulare anbieten, um schnell an möglichst viele Kontaktdaten der Besucher zu gelangen und diese dann an
Dritte verkaufen. Angelockt werden diese meist mit Gewinnspielen oder der Möglichkeit der kostenfreien
Downloadmöglichkeit von Trailversionen teurer Anwendungen[67]. Die soeben beschriebenen beispielhaften
Sicherheitslücken galten für HTML 4.01 und gelten weiterhin für HTML5. Während bei HTML 4.01 noch auf
JavaScript usw. zurück gegriffen werden musste, kann bei HTML5 darauf verzichtet werden, sodass die damit
verbundenen möglichen Sicherheitslücken nicht auftreten.
3.2.5 Sicherheit
32
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Eine weitere Sicherheitslücke könnte das pattern-Atrribut eröffnen. Bei fehlendem Wissen könnte beim Einsatz
auf die serverseitige Überprüfung verzichtet werden und so ein Schlupfloch für Hacker darstellen. Das neue
Keygen-Element soll mehr Sicherheit bei der Authentifizierung des Benutzers bieten. Jedoch wird dieses Element
noch nicht von allen Browsern unterstützt, um einen sinnvollen und nützlichen Sicherheitsstandard
darzustellen[68]. Da dies das einzige neue Element für die Erhöhung der Sicherheit bei Formularen ist, lässt sich
daraus folgern, dass die Fokussierung bei der Entwicklung von HTML5 nicht auf der Weiterentwicklung der
Sicherheit lag.
3.2.6 Performance
Durch den Einsatz von HTML5 in Bezug auf Formulare kann theoretisch auf Ajax bzw. JavaScript komplett
verzichtet werden. Dadurch wird der Umfang des Quellcodes verringert und somit auch die zu übertragenden
Daten. Aufgrund des kleineren und nicht so komplexen Quellcodes kann dieser auch gegebenenfalls von dem
Browser schneller verarbeitet und angezeigt werden.
Wobei dazu gesagt werden sollte, dass bei der Rechenleistung von aktuellen Computersystemen und dem weit
verbreiteten Breitband-Internet, sich wahrscheinlich kein großer Unterschied in der Performance für den
Standardanwender im Internet festzustellen sein wird.
3.2.7 Browserkompatibiltät
Aufgrund der Tatsache, dass HTML5 noch in der Entwicklungsphase und noch kein verabschiedeter Standard ist,
werden die neuen Elemente und Attribute von HTML5 nicht gleichermaßen von den gängigen Browsern
unterstützt. Zu den Vorreitern unter den Browsern zählen Opera und Safari. Das Schlusslicht bildet der Internet
Explorer.
Folgende Browser unterstützen HTML5 im Allgemeinen[69]:
• ab Firefox 3.0
• ab Safari 3.0
• ab Opera 10.0
• ab Chrome 3.0
• ab Internet Explorer 9
HTML5 ist abwärtskompatibel, d.h. wenn ein Browser ein Element oder Attribut nicht unterstützt, ist es trotzdem
möglich dieses zu benutzen. Die neuen Input-Typen werden zum Beispiel als normale <input type="text">
behandelt, sofern sie nicht vom Browser unterstützt werden. Die nicht unterstützen Attribute werden einfach
außer Acht gelassen und finden keine Anwendung[70].
Die unten stehenden Tabellen geben eine aktuelle (Stand: 12/2010) Übersicht über die Browserkompatibilät der
neuen Elemente und Attribute bezogen auf Formulare:
Neue und modifizierte Elemente[71]
Elemente
Safari 5.03*
Opera 11*
Firefox 3.6.12*
Chrome
8.0.882.215*
Internet
Explorer 9
datalist
3.2.6 Performance
33
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
fieldset
keygen
label
meter
optgroup
output
progress
legend
input
button
select
option
textarea
/*Mac Version des Browsers
input-Attribute[71]
Attribute
Safari 5.03*
Opera 11*
Firefox 3.6.12*
Chrome
8.0.882.215*
Internet
Explorer 9
autocomplete
autofocus
list
max
min
mutiple
pattern
placeholder
required
step
/*Mac Version des Browsers
Nach dem neuesten Update des Opera Browsers auf die Version 11 (16.12.2010) unterstützt dieser nun alle neuen
Elemente und Attribute des Formulars.
3.2.8 Alternativen
PHP
"PHP ist eine weit verbreitete Open-Source-Allzweck-Skriptsprache, welche speziell für die Webprogrammierung
3.2.7 Browserkompatibiltät
34
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
geeignet ist und in HTML eingebettet werden kann"[72].
Mit PHP können nach Absenden eines Formulars die eingegebenen Werte mittels Funktionen überprüft werden.
Z.B. kann das neue HTML5 Attribute "Pattern" dadurch ersetzt werden oder das Input-Element E-Mail, URL oder
Number wird auf Korrektheit überprüft. Hierzu können z.B. folgende Funktionen genutzt werden:
eregi (PHP 4, PHP 5)
>>Sucht Übereinstimmung mit regulärem Ausdruck ohne Berücksichtigung von Groß-/Kleinschreibung[73].<<
Damit lässt sich prüfen, ob sich unzulässige Zeichen in der Eingabe bei einer E-Mail, URL oder Nummer
befinden.
Syntax:
int eregi ( string $pattern , string $string [, array &$regs ] )
Beispiel:
<?php
$string = 'XYZ';
if (eregi('z', $string)) {
echo "'$string' contains a 'z' or 'Z'!";
}
?>
ereg (PHP 4, PHP 5)
>>Sucht Übereinstimmungen mit einem regulären Ausdruck[74].<<
Syntax:
int ereg ( string $pattern , string $string [, array &$regs ] )
Beispiel:
<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
echo "$regs[3].$regs[2].$regs[1]";
} else {
echo "Ungültiges Datumsformat: $date";
}
?>
Javascript
>>JavaScript ist kein direkter Bestandteil von HTML, sondern eine eigene Programmiersprache. Diese Sprache
wurde jedoch eigens zu dem Zweck geschaffen, HTML-Autoren ein Werkzeug in die Hand zu geben, mit dessen
Hilfe sich Web-Seiten optimieren lassen[..][75].<<
3.2.8 Alternativen
35
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
JavaScript kann als Alternative genutzt werden um z.B. das Input-Element Number zu ersetzen. Hierbei werden
die Buttons zum Erhöhen oder zum Senken der Zahl durch zwei Buttons, welche mit JavaScript versehen sind,
ersetzt.
Funktion: innerHTML
>>Speichert den Inhalt eines HTML-Elements. Wenn Sie beim dynamischen Ändern des gespeicherten Inhalts
HTML-Tags notieren, werden diese bei der Aktualisierung des Elementinhalts interpretiert[76].<<
Beispiel:
<html><head><title>Test</title>
<script type="text/javascript">
var Neu = document.all.meinAbsatz.innerHTML + 1;
function erhoehen () {
document.all.meinAbsatz.innerHTML = Neu;
}
</script>
</head><body>
<p id="meinAbsatz">1</p>
<a href="javascript:erhoehen()">Erhöhen</a>
</body>
</html>
CSS / HTML
>>CSS oder Cascading Style Sheets ist eine Sprache zum Formatieren von HTML/XHTML-Elementen.
Verglichen mit den HTML-Formatierungen bietet CSS erheblich mehr Möglichkeiten, wie z.B. Schriftgestaltung,
Rahmen, Innen- und Aussenabstände, Listen, Hintergründe, Positionieren[77], ...<<
Mittels CSS und HTML Block-Elementen kann das Fieldset-Tag ersetzt werden.
Beispiel: Mittels "div" wird ein Codeabschnitt gruppiert und über eine eindeutige ID kann dieses Block-Element
z.B. ausgeblendet oder zentriert werden. Mittels CSS kann noch ein zusätzliche Rahmen um den Block gesetzt
werden.
<div align="center" id="container" style="border: 1px solid black">
<h1>Alles zentriert</h1>
<ul>
<li>alles zentriert</li>
<li>alles?</li>
<li>alles!</li>
</ul>
</div>
3.2.8 Alternativen
36
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Abbildung 31 - Beispiel Zentrierter div-Tag mit Rahmen
JQuery UI
"jQuery UI bietet Abstraktionen für die Low-Level-Interaktion und Animation, erweiterte Effekte und grafisch
High-Level anpassbare Widgets, die auf der jQuery JavaScript Library gebaut wurden, mit derer Hilfe Sie
interaktive Web-Anwendungen bauen können[78]."
JQuery UI bietet eine sehr große Auswahl von Funktionen mit denen sehr viele HTML Formularelemente ersetzt
werden können.
Es kann z.B. das Input-Element Range ersetzt werden:
<!DOCTYPE html>
<html>
<head>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="style
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<style type="text/css">
#slider { margin: 10px; }
</style>
<script>
$(document).ready(function() {
$("#slider").slider();
});
</script>
</head>
<body style="font-size:62.5%;">
<div id="slider"></div>
</body>
</html>
Abbildung 32 - Beispiel JQuery UI - Slider
Ebenfalls könnte mittels JQuery UI eine Farbauswahl eingebunden werden...
$('#colorpickerHolder').ColorPicker({flat: true});
3.2.8 Alternativen
37
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Abbildung 33 - Beispiel JQuery UI - Colorpicker
... oder standart Formular Elemente, denen noch ein alternatives aussehen zugeordnet wird:
$('input[type=checkbox]').checkbox({
cls:'jquery-safari-checkbox',
empty: 'http://www.yoursite.com/images/empty.gif'
});
Abbildung 34 - Beispiel JQuery UI - Checkbox
3.3 Ergebnis
Nach dem detaillierten Vergleich lässt sich folgendes Ergebnis erschließen:
Die Implementierung der neuen Elemente, Attribute und Typen sind eine Erleichterung in der Programmierung
von Formularen. Es muss nicht mehr auf die Angebote von Drittanbieter wie JavaScript, JQuery etc. ausgewichen
werden, sondern es ist nun möglich ein umfangreiches Formular mit vielen Features auf reiner HTML Basis zu
erstellen. Durch den ID-Tag ist nun auch eine freie Gestaltung des Formulars möglich. Es können also nun
Elemente eines Formulars außerhalb des form-Elements positioniert werden. Zudem erleichtern die neuen
Elemente auch die Eingabe der Anwender. Als Beispiel kann man das Formularwidget "datetime picker" des
input-Elementes heranziehen, bei dem der Anwender das Datum über einen Kalender per Mausklick auswählen
kann. Dazu sind viele clientseite Validierungenen möglich, bei denen anhand des pattern-Attributes die
Richtigkeit einer Eingabe überprüft wird. Des weiteren sind nette Features wie das Anpassen der Tastatur bei
Smartphones, wie z.B. beim iPhone, hinzugekommen. Da HTML5 noch nicht als Standard definiert worden ist,
ist noch keine vollständige Unterstützung aller Browser gegeben. Zur Zeit hat nur die aktuellste Version des
Opera-Browsers (Version 11) als einziger Browser alle Neuerungen implementiert. Zwar wird bei einer fehlenden
Unterstützung ein neues Element als "input type=text" Element interpretiert, sodass ein Formular trotzdem
verwendet werden kann, jedoch ist ein professioneller Einsatz noch nicht zu empfehlen.
Abschließend kann man sagen, dass die neuen Implementierungen ein gute und sinnvolle Neuerung in HTML5
sind. Sobald HTML5 als Standard definiert und von allen Browsern vollständig unterstützt wird, steht einem
professionellem Einsatz nichts mehr im Wege.
3.3 Ergebnis
38
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
4 Fazit
Positiv zu erwähnen ist, dass durch die Neuerungen im Zuge von HTML5 zukünftig viel Aufwand hinsichtlich
der Programmierung von Formularen gespart werden kann, da kein Ausweichen auf andere Lösungen mehr nötig
ist. Darüber hinaus ist es leicht sich in die Programmierung mit HTML5 einzuarbeiten, wenn man bereits erste
Erfahrungen mit HTML besitzt.
Ein Vorteil für den Besucher einer Website ist das neue Pattern-Attribut, weil die Eingabe bereits im Browser auf
Richtigkeit überprüft wird. Der Nachteil daran ist, dass aufgrund fehlendem Programmier-Wissens, eine
Sicherheitslücke entstehen kann. Ein unwissender Programmierer könnte sich darauf verlassen und eine
serverseitige und sicherere Überprüfung außer Acht lassen.
Auf der anderen Seite steht die aktuelle Problematik mit der Browserkompatilibät. Auch hier besteht die Gefahr,
dass man sich dieser nicht bewusst ist und ein in HTML5 programmiertes Formular professionell einsetzt (z.B. in
einer Unternehmenswebseite) und dieses Formular zwar anwendbar ist, dabei aber unbewusst auf die neuen und
unterstützenden Neuerungen verzichtet werden muss. Ein anderer Aspekt ist der Verlust der Bedeutung von
JavaScript, da vor allem im leihen und semi-professionellen Einsatz von HTML5 bei der Programmierung diese
an Wert verlieren.
Es gilt als fast sicher, dass HTML5 der nächste Schritt im Web 2.0 sein wird. Nur ist es aktuell noch unklar,
wann, in welcher Form und von wem. Ob W3C oder WHATWG als Herausgeber bzw. HTML5 als Standard
verabschiedet wird ist eine spannende Frage, die bald beantwortet werden wird. WHATWG hat dabei wohl die
besseren Chancen, die in dem aktuellen Fortschritts als auch in der Historie begründet ist. Auch wegen der
Tatsache, dass die Browserhersteller hinter HTML5 stehen, ist aller Voraussicht nach HTML5 die Zukunft.
Letztendlich lässt sich im Moment nur eine Empfehlung für den privaten Gebrauch aussprechen. Auf einen
professionellen Einsatz sollte aktuell noch verzichtet werden.
5 Anhang
5.1 Quellcode des Beispiels
<h1>Pizza Mamamia </h1>
<form action="bestellung_abschicken.html" name="formular_pizza_bestellung"
onformchange="javascript:aktivitaet.innerHTML = 'Formular wurde geändert';"
onforminput="javascript:aktivitaet.innerHTML = 'Es wird gerande eine Eingabe getätigt';"
onsubmit="javascript:alert('Bestellung wird geprüft und versendet.');">
<input type="hidden" name="page" value="mamamia">
<fieldset>
<legend><strong>Fortschritt:</strong></legend>
Bestellvorgang:
<progress max="3" value="2">Schritt 2 von 3</progress> <meter value="0.66">66%</meter>
<br />
Bestellnummer: <input type="text" name="bestellnummer" value="2010-12-24.234" readonly>
</fieldset>
<fieldset>
<legend>Bestellung</legend>
4 Fazit
39
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
<table border="0" width="60%">
<tr>
<td><strong>Pizza</strong></td>
<td> </td>
<td><strong>Anzahl</strong></td>
<td><strong>Größe</strong></td>
<td><strong>Gewürze</strong></td>
</tr>
<tr>
<td><label for="input_gericht_salami">Salami</label></td>
<td><input type="checkbox" name="gericht_salami" id="input_gericht_salami"></td>
<td><input type="number" min="0" max="10" step="1.0" size="3"></td>
<td>10 cm<input type="range" min="10" max="50" value="30" step="5" name="size_salami" list="s
<td><input type="text" name="gewuerze_salami" autocomplete="on" list="gewuerze" multiple="mul
</tr>
<tr>
<td><label for="input_gericht_hawai">Hawai</label></td>
<td><input type="checkbox" name="gericht_hawai" id="input_gericht_hawai"></td>
<td><input type="number" min="0" max="10" step="1.0" size="3"></td>
<td>10 cm<input type="range" min="10" max="50" value="30" step="5" name="size_salami" list="s
<td><input type="text" name="gewuerze_hawai" autocomplete="on" list="gewuerze" multiple="mult
</tr>
<tr>
<td><label for="input_gericht_tonno">Tonno</label></td>
<td><input type="checkbox" name="gericht_tonno" id="input_gericht_tonno"></td>
<td><input type="number" min="0" max="10" step="1.0" size="3"></td>
<td>10 cm<input type="range" min="10" max="50" value="30" step="5" name="size_salami" list="s
<td><input type="text" name="gewuerze_tonno" autocomplete="on" list="gewuerze" multiple="mult
</tr>
<tr>
<td><label for="input_gericht_diablo">Diablo</label></td>
<td><input type="checkbox" name="gericht_diablo" id="input_gericht_diablo"></td>
<td><input type="number" min="0" max="10" step="1.0" size="3"></td>
<td>10 cm<input type="range" min="10" max="50" value="30" step="5" name="size_salami" list="s
<td><input type="text" name="gewuerze_diablo" autocomplete="on" list="gewuerze" multiple="mul
</tr>
<tr>
<td>Zusatzwünsche</td>
<td colspan="3"><textarea rows="3" cols="50" name="zusatz"
onfocus="javascript:this.style.border = 'solid blue 1px'"
onblur="javascript:this.style.border = 'solid green 1px'"
onchange="javascript:this.form.info.innerHTML = 'Ok, machen wir ;)'"
oninput="javascript:this.form.info.innerHTML = 'Ohje, was kommt denn jetzt?'"></textarea></
<td><output for="info_in_bestellung" id="info"></output></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Kontakt:</legend>
<table>
<tr>
<td>Name*</td>
<td><input type="text" name="name" autocomplete="on" list="name" required /></td>
</tr>
<tr>
<td>Email:*</td>
<td><input type="email" name="mail" title="Bitte eine gültige Email-Adresse eingeben: " requi
</tr>
<tr>
<td>Passwort*:</td>
<td><input type="password" name="passwort" value="asdfgh" required></td>
5.1 Quellcode des Beispiels
40
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
</tr>
<tr>
<td>Telefon:</td>
<td><input type="telephone" name="telefon" maxlength="15" value="0202 123456" />
</td>
</tr>
<tr>
<td>Straße / Nr.*</td>
<td><input type="text" pattern="[A-Za-z]+[.]? [0-9]+" name="straße"
oninvalid="javascript:this.form.aktivitaet.innerHTML ='Sie haben einen Fehler im Feld Straß
</tr>
<tr>
<td>Stadt / PLZ</td>
<td>
<select name="plz">
<optgroup label="Düsseldorf">
<option value ="40210">40210</option>
<option value ="40211">40211</option>
<option value ="40212">40212</option>
<option value ="40213">40213</option>
</optgroup>
<optgroup label="Köln">
<option value="50667">50667</option>
<option value="50668">50668</option>
</optgroup>
<optgroup label="Remscheid">
<option value="42857">42857</option>
<option value="42859">42859</option>
</optgroup>
</select>
</td>
</tr>
<tr>
<td>Land:</td>
<td><input name="land" type="text" list="laender" pattern="[A-Z]{3}" /></td>
</tr>
<tr>
<td>Geburtstag</td>
<td><input type="text" name="geburtstag" placeholder="YYYY-MM-DD"></td>
</tr>
<tr>
<td>Meine Homepage:</td>
<td><input type="url" /></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Versand</legend>
<table>
<tr>
<td>Versandart:</td>
<td>
<input type=radio name="versandart" value="express" id="versandart_express"><label for="ver
<input type=radio name="versandart" value="standart" id="versandart_express"><label for="ve
</td>
</tr>
<tr>
<td>Zeitpunkt</td>
<td><input type=datetime name="meeting.start" ></td>
</tr>
</table>
5.1 Quellcode des Beispiels
41
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
</fieldset>
<fieldset>
<legend>Sonstiges</legend>
<table>
<tr>
<td>Gutschein hochladen:</td>
<td> <input type=file name="gutschein"> </td>
</tr>
<tr>
<td>Gutscheinnr eintragen</td>
<td><input type="number"><button type="button" onclick="alert('Passt :)')">Prüfen</button></t
</tr>
<tr>
<td>Nur heute konstenlose Gutscheinnummern </td>
<td><input type="text" name="gutscheinnr" value="123.456.789" onselect="javascript:alert('Sie
</tr>
<tr>
<td>Bestellung verschlüsseln</td>
<td><keygen keytype="rsa" name="schluessel" id="key"></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Info</legend>
<table>
<tr>
<td><output for="aktivitaet" id="aktivitaet"></output></td>
</tr>
</table>
</fieldset>
<table>
<tr>
<td> </td>
</tr>
<tr>
<td>Mit * gekennzeichnete Felder sind Pflichtfelder!</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
<datalist id="sizes">
<option value="10">
<option value="20">
<option value="30">
<option value="40">
<option value="50">
</datalist>
<datalist id="name">
<option value="Andreas Schreiber">
<option value="Daniel Dreissen">
<option value="Tom Reißberg">
<option value="Ivo Marx">
</datalist>
<datalist id="laender">
<option value="D" label="Deutschland">
5.1 Quellcode des Beispiels
42
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
<option value="ES" label="Spanien">
<option value="NL" label="Niederlande">
</datalist>
<datalist id="gewuerze">
<option value="Oregano">
<option value="Knoblauch">
<option value="Salz">
<option value="Pfeffer">
</datalist>
5.2 Fußnoten
1. ? Vgl. http://www.wordiq.com/definition/HTML (02.12.2010,17:54)
2. ? Vgl. Ernst, Hartmut:Grundkurs Informatik, 4.Auflage, 2008, Seite 735
3. ? Vgl. http://aktuell.de.selfhtml.org/links/html.htm(06.12.2010 17:18)
4. ? Vgl. http://www.w3.org/MarkUp/html-spec/html-pubtext.html(02.12.2010,20:00)
5. ? Vgl. http://www.w3.org/TR/REC-html32.html. (02.12.2010,20:00)
6. ? Vgl. http://www.w3.org/TR/REC-html40/ (02.12.10, 20:00)
7. ? Vgl. http://www.w3.org/TR/html401/ (02.12.10, 20:00)
8. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 20f
9. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 21
10. ? Vgl. http://www.w3.org/TR/html5/ (02.12.10, 20:00)
11. ? Vgl. http://www.w3.org (02.12.2010, 17:04)
12. ? http://www.w3.org/TR/html5 (09.12.2010 21:00)
13. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 23
14. ? Vgl. Chuck Musciano & Bill Kennedy, HTML & XHTML-Das umfassende Referenzwerk, 4.Auflage,
2003, Seite 5ff
15. ? Vgl. http://wordiq.com/definition/html (07.12.2010, 17:00)
16. ? Vgl. http://www.html-seminar.de/html-editoren-zur-fehlerreduktion.htm (08.12.10 8:50)
17. ? Vgl. http://fwpf-webdesign.de/xhtml/grundlagen/aufbau-eines-html-dokuments (08.12.10 9:00)
18. ? Vgl. http://www.web-toolbox.net/webtoolbox/formulare/formulareinsatz.htm (07.12.2010, 19:00)
19. ? Vgl. http://de.selfhtml.org/navigation/suche/index.htm?Suchanfrage=formular (07.12.2010, 18:45)
20. ? 20,0 20,1 20,2 20,3 http://de.selfhtml.org/navigation/suche/index.htm?Suchanfrage=formular (07.12.2010,
18:45)
21. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 122f
22. ? Vgl. w3schools HTML5, 09.12.2010, http://www.w3schools.com/html5/tag_legend.asp (09.12.2010,
17:48)
23. ? Vgl. http://www.dotnetheaven.com/UploadFile/manish1231/4447/Default.aspx (09.12.2010, 17:49)
24. ? 24,0 24,1 24,2 24,3 24,4 Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 112
25. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 114
26. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 115
27. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 113
28. ? 28,0 28,1 Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 116
29. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 126
30. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 127
31. ? Vgl. W3C HTML5, 27.11.2010, http://www.w3.org/TR/html-markup/input.radio.html (27.11.2010,
15:09)
5.2 Fußnoten
43
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
32. ? Vgl. W3C HTML5, 28.11.2010, http://dev.w3.org/html5/spec/Overview.html#file-upload-state
(28.11.2010, 12:58)
33. ? http://www.w3schools.com/html5/tag_input.asp (13.12.2010, 09:08)
34. ? http://dev.w3.org/html5/html4-differences/#changed-elements (20.12.2010 14:30)
35. ? Vgl. http://www.w3schools.com/html5/tag_button.asp (09.12.2010 20:01)
36. ? Vgl. http://www.quackit.com/html_5/tags/html_button_tag.cfm (09.12.2010 20:01)
37. ? http://dev.w3.org/html5/html4-differences/#changed-elements (20.12.2010 14:30)
38. ? Vgl. http://www.w3schools.com/html5/tag_select.asp (09.12.2010 20:16)
39. ? Vgl. http://www.quackit.com/html_5/tags/html_option_tag.cfm (09.12.2010 20:33)
40. ? Vgl. http://www.w3schools.com/html5/tag_option.asp (09.12.2010 20:33)
41. ? Vgl. http://www.w3schools.com/html5/tag_textarea.asp (09.12.2010 20:46)
42. ? Vgl. http://www.w3schools.com/html5/tag_fieldset.asp (07.12.2010 20:11)
43. ? Vgl. http://www.w3schools.com/html5/att_fieldset_disabled.asp (07.12.2010 20:11)
44. ? Vgl. http://www.w3schools.com/html5/tag_label.asp (07.12.2010 20:06)
45. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 124
46. ? Vgl. http://www.w3schools.com/html5/tag_optgroup.asp (07.12.2010, 19:55)
47. ? Vgl. http://www.quackit.com/html_5/tags/html_optgroup_tag.cfm(07.12.2010, 19:55)
48. ? W3C HTML5, 25.11.2010, http://www.w3.org/TR/html5/the-button-element.html#the-keygen-element
(25.11.2010, 12:09)
49. ? HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 120
50. ? HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 121
51. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 57
52. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 58
53. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 58
54. ? 54,0 54,1 54,2 54,3 54,4 54,5 54,6 54,7 54,8
http://dev.w3.org/html5/spec/Overview.html#common-input-element-attributes (29.12.2010 15:00)
55. ? 55,0 55,1 55,2 http://www.w3schools.com/html5/html5_form_attributes.asp (29.12.2010 15:00)
56. ? http://de.selfhtml.org/javascript/sprache/eventhandler.htm (29.12.2010 18:00)
57. ? >>The onblur event occurs when an element loses focus either by the pointing device or by tabbing
navigation. It may be used with the same elements as onfocus.<< übersertzt von Andreas Schreiber,
http://www.w3.org/TR/html4/interact/scripts.html (02.01.2011)
58. ? >>The onchange event occurs when a control loses the input focus and its value has been modified
since gaining focus. This attribute applies to the following elements: INPUT, SELECT, and
TEXTAREA.<< übersertzt von Andreas Schreiber, http://www.w3.org/TR/html4/interact/scripts.html
(02.01.2011)
59. ? >>The onfocus event occurs when an element receives focus either by the pointing device or by tabbing
navigation. This attribute may be used with the following elements: A, AREA, LABEL, INPUT,
SELECT, TEXTAREA, and BUTTON.<< übersertzt von Andreas Schreiber,
http://www.w3.org/TR/html4/interact/scripts.html (02.01.2011)
60. ? >>The onreset event occurs when a form is reset. It only applies to the FORM element.<< übersertzt
von Andreas Schreiber, http://www.w3.org/TR/html4/interact/scripts.html (02.01.2011)
61. ? >>The onselect event occurs when a user selects some text in a text field. This attribute may be used
with the INPUT and TEXTAREA elements.<< übersertzt von Andreas Schreiber,
http://www.w3.org/TR/html4/interact/scripts.html (02.01.2011)
62. ? >>The onsubmit event occurs when a form is submitted. It only applies to the FORM element.<<
übersertzt von Andreas Schreiber, http://www.w3.org/TR/html4/interact/scripts.html (02.01.2011)
63. ? >>Script to be run when a form changes.<< übersertzt von Andreas Schreiber,
http://www.w3schools.com/html5/html5_ref_eventattributes.asp (02.01.2011)
64. ? >>Script to be run when a form gets user input.<< übersetzt von Andreas Schreiber,
http://www.w3schools.com/html5/html5_ref_eventattributes.asp (02.01.2011)
5.2 Fußnoten
44
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
65. ? >>Script to be run when an element gets user input.<< übersetzt von Andreas Schreiber,
http://www.w3schools.com/html5/html5_ref_eventattributes.asp (02.01.2011)
66. ? >>Script to be run when an element is invalid.<< übersetzt von Andreas Schreiber,
http://www.w3schools.com/html5/html5_ref_eventattributes.asp (02.01.2011)
67. ? Vgl. http://www.web-toolbox.net/webtoolbox/formulare/formulareinsatz.htm (07.12.2010, 19:00)
68. ? http://www.w3schools.com/html5/html5_form_elements.asp (09.12.10 10:00)
69. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 30ff
70. ? Vgl. HTML5 Webseiten innovativ und zukunftssicher (2010), Seite 117
71. ? 71,0 71,1 http://html5test.com/ (20.12.2010, 12:00)
72. ? >>PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source
general-purpose scripting language that is especially suited for web development and can be embedded
into HTML.<< übersertzt von Andreas Schreiber, http://php.net/manual/en/intro-whatis.php (02.01.2011)
73. ? http://de.php.net/manual/de/function.eregi.php (02.01.2011)
74. ? http://de.php.net/manual/de/function.ereg.php (02.01.2011)
75. ? http://de.selfhtml.org/javascript/intro.htm (02.01.2011)
76. ? http://de.selfhtml.org/javascript/objekte/all.htm#inner_html (02.01.2011)
77. ? http://www.css4you.de/wscss/css01.html (02.01.2011)
78. ? >>jQuery UI provides abstractions for low-level interaction and animation, advanced effects and
high-level, themeable widgets, built on top of the jQuery JavaScript Library, that you can use to build
highly interactive web applications.<< übersertzt von Andreas Schreiber,
http://php.net/manual/en/intro-whatis.php (02.01.2011)
5.3 Abkürzungsverzeichnis
Abkürzung
Ajax
CSS
HTML
HTTP
PHP
SGML
URL
W3C
WHATWG
XHTML
XSS
Bedeutung
Asynchronous JavaScript and XML
cascading style sheets
Hypertext Markup Language
Hypertext Transfer Protokoll
Hypertext Preprocessor
Standard Generalized Markup Language
uniform resource locator
World Wide Web Consortium
Web Hypertext Application Technology Working Group
extensible hypertext markup language
Cross-Site-Scripting
5.4 Abbildungsverzeichnis
Abb.-Nr.
1
2
Abbildung
Anwendungsbeispiel "Pizza-Bestellformular"
Ausgabe außerhalb von Form-Elementen
5.3 Abkürzungsverzeichnis
45
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Überschrift für Elemente mit legend
iPhone Tastatur (search)
iPhone Tastatur (url)
Eingabefeld E-Mail in Opera
iPhone Tastatur (email)
Datums- und Zeitangaben
Eingabefeld number mit Step 1.0 in Opera
iPhone Tastatur (number)
Eingabefeld range mit Step 1.0 in Opera
Gruppe von Radio-Buttons in Opera
datalist-Element mit autocomplete
Drop-Down Menü mit Überschriften
Keygen
Beispiel autocomplete
Beispiel list
Beispiel required
Beispiel multiple
Beispiel pattern
Beispiel step
Beispiel placeholder
Beispiel onblur
Beispiel onchange
Beispiel onfocus
Beispiel onselect
Beispiel onformchange
Beispiel onforminput
Beispiel oninput
Beispiel oninvalid
Beispiel Zentrierter div-Tag mit Rahmen
Beispiel JQuery UI - Slider
Beispiel JQuery UI - Colorpicker
Beispiel JQuery UI - Checkbox
5.5 Tabellenverzeichnis
Tabelle Nr.
Tabelle 1
Tabelle 2
Tabelle 3
Tabelle 4
Inhalt
Übersicht der Versionen von HTML
Neue Attribute vom Typ input
Neue Attribute vom Typ button
Neue Attribute vom Typ textarea
5.4 Abbildungsverzeichnis
46
Analyse_der_Funktionen_und_Demonstration_von_HTML5_in_Hinblick_auf_Formulare
Tabelle 5
Tabelle 6
Neue und modifizierte Elemente
Neue Attribute
5.6 Quellenverzeichnis
Literaturquellen:
Kröner(2010)
Linux-Magazin
Grundkurs Informatik
HTML & XHTML
Das umfassende
Referenzwerk
Kröner, Peter: HTML5 Webseiten innovativ und zukunftssicher, 2010
Linux-Magazin, Ausgabe 10/10: Ner neue Webstandard HTML5
Ernst, Hartmut:Grundkurs Informatik, 4.Auflage, 2008
Chuck Musciano & Bill Kennedy, HTML & XHTML-Das umfassende
Referenzwerk, 4.Auflage, 2003
Internetquellen:
W3schools
W3C
Net Heaven
wordIQ
SELFHTML e.V.
HTML-Seminar
Webdesign mit
XHTML und CSS
Web-Toolbox
The HTML5 test
PHP
css4you
JQuery
http://www.w3schools.com/html5
http://dev.w3.org/html5/spec
http://www.dotnetheaven.com/Articles/ArticleListing.aspx?SectionID=48
http://www.wordiq.com/definition/HTML
http://aktuell.de.selfhtml.org/links/html.htm
http://www.html-seminar.de/html-editoren-zur-fehlerreduktion.htm
http://fwpf-webdesign.de/xhtml/grundlagen/aufbau-eines-html-dokuments
http://www.web-toolbox.net/webtoolbox/formulare/formulareinsatz.htm
http://html5test.com/
http://de.php.net/
http://www.css4you.de
http://jquery.org/
5.5 Tabellenverzeichnis
47
Herunterladen