HTML & CSS voor beginners

HTML & CSS voor beginners (Deel 15): Formulieren (3)

Alle video's van de tutorial HTML & CSS voor beginners

Hoewel de HTML5-formulieren aanzienlijk meer functies bieden dan hun voorgangers, kunnen ze net zo eenvoudig worden gedefinieerd.

HTML5 biedt eigenlijk veel nieuwe veldtypen. De ondersteuning door de huidige browsers is al behoorlijk goed. Hoe dan ook zal ik jullie op dit punt alleen veldtypen laten zien die praktisch bruikbaar zijn.


Kleurkiezer

U kunt uw bezoekers de mogelijkheid geven om een kleur te kiezen.

HTML & CSS voor beginners (deel 15): Formulieren (3)

Als men zo'n veld aanklikt, wordt er een typische kleurkiezer geopend.

HTML & CSS voor beginners (Deel 15): Formulieren (3)



Via de kiezer kan de gewenste kleur worden geselecteerd. Zo'n kleurkiezer wordt gedefinieerd met <input type="color" />.

Kies je favoriete kleur: <input type="color" name="lf" />



Er moet altijd een waarde aan het veld worden toegewezen. Als dit ontbreekt of ongeldig is, wordt automatisch #000 (zwart) aangenomen.

Datum en tijd

Vooral wat betreft veldtypen voor datum- en tijdnotaties zijn er talrijke vernieuwingen in HTML5. En deze veldtypen hebben eigenlijk wel wat in petto. Denk bijvoorbeeld aan de stappen die nodig zijn als je je bezoekers een datumkiezerveld wilt aanbieden. Normaal gesproken is dat zonder JavaScript (of zelfs Flash) niet mogelijk. Dankzij HTML5 is dit vanaf nu veel gemakkelijker. Hier hoef je alleen maar een invoerveld van het type date te definiëren.

<input type="date" />



Voor de weergave en implementatie van de kalender is uitsluitend de browser verantwoordelijk. De browser zou een passend widget moeten tonen voor de kalenderweergave. In Google Chrome ziet een toepassing er als volgt uit:

HTML & CSS voor beginners (Deel 15): Formulieren (3)

Met date wordt een kalender gedefinieerd waarop gebruikers de gewenste datum kunnen selecteren. Na de selectie wordt de datum automatisch overgenomen in het tekstveld.

Ook gemakkelijk is het aanmaken van een tijdveld. Hiervoor wordt een veld van het type time gebruikt.

<input type="time" />



Met time moeten de browsers bedieningselementen tonen om een tijd te selecteren.

HTML & CSS voor beginners (Deel 15): Formulieren (3)



Vergelijkbaar eenvoudig werkt week. Hiermee wordt een veld weergegeven om de week te selecteren.

<input type="week" />



Ook kan een veld voor maanden worden weergegeven.

<input type="month" />



Beide veldtypen tonen besturingselementen waarmee de gewenste gegevens kunnen worden ingesteld.

Terwijl time en date ofwel alleen de datumselectie of alleen de tijdselectie toestaan, maken datetime en datetime-local een combinatie van beide varianten mogelijk.

Met datetime worden naast elkaar een datumveld en een tijdselectieveld weergegeven. (datetime wordt momenteel alleen ondersteund door Safari en Opera).

HTML & CSS voor beginners (Deel 15): Formulieren (3)

Er is al gesuggereerd dat de formulierelementen die in dit gedeelte zijn gepresenteerd momenteel nog niet door alle browsers worden ondersteund. Als je ze toch wilt gebruiken, kun je terugvallen op bijpassende JavaScript-oplossingen. De belangrijkste JavaScript-frameworks zoals jQuery en Dojo bieden geschikte scripts aan. Bij jQuery UI ziet dat er als volgt uit:

<!DOCTYPE html>
<html>
<head>
  <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
  <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>
<script>
/* <![CDATA[ */
  $(document).ready(function() {
    $("#datepicker").datepicker();
  });
/* ]]> */
  </script>
</head>
<body>
   <input type="text" id="datepicker" />
</body>
</html>

Zo ben je dus goed beschermd, zelfs als de browser het klassieke date niet ondersteunt.

HTML & CSS voor beginners (Deel 15): Formulieren (3)

Velden voor getallen

Met number wordt een veld aangeboden dat specifiek bedoeld is voor het invoeren van getallen.

HTML & CSS voor beginners (Deel 15): Formulieren (3)



In het eenvoudigste geval ziet de definitie van een number-veld er als volgt uit:

<input type="number" />



De getallen kunnen op twee manieren worden ingevoerd in deze velden:

• via het toetsenbord

• via besturingselementen

Door het opgeven van extra attributen kunnen number-velden gedetailleerder worden beschreven. Ten eerste zijn er de twee attributen min en max, waarmee de waardebereiken van de velden bepaald kunnen worden.

min - de kleinste waarde

max - de grootste waarde

Deze twee attributen hebben echter alleen betrekking op de besturingselementen van de browser. De handmatige invoer door gebruikers via het toetsenbord kan hierdoor niet worden beïnvloed.

Aan beide attributen kunnen gehele en decimale getallen worden toegewezen.

Met het attribuut step kan de stapgrootte worden ingesteld die door de browserbesturingselementen moet worden gevolgd.

<input type="number" min="0" max="8" step="2" />



In dit geval kunnen via de browserbesturingselementen alleen de waarden 0, 2, 4, 6 en 8 worden geselecteerd.

Schuifregelaar

Velden van het type range stellen de gebruiker in staat een waarde te selecteren binnen een gedefinieerd bereik.

HTML & CSS voor beginners (Deel 15): Formulieren (3)

De browsers interpreteren het bereiksveld via een schuifregelaar.

<input type="range"  min="0" max="10" step="2" value="6">



De kleinste mogelijke waarde wordt aangegeven met het min-attribuut. max beschrijft de grootste waarde. Als de attributen min en max ontbreken, gaan browsers uit van de waarden 0 en 100.

Met step kan de stapgrootte worden gedefinieerd.

Zoekvelden maken

search heeft in eerste instantie geen functie. Dit veldtype wordt eerder gezien als een aanvulling op het klassieke tekstveld. Het doel van search-velden is om zich alleen optisch te onderscheiden van eenvoudige tekstvelden. Doorgaans moeten browsers de weergave van de search-velden overnemen.

<input type="search" />



Hoe dit uiteindelijk wordt geïmplementeerd, is aan de fabrikanten overgelaten. Een goede combinatie is het toevoegen van het results-attribuut.

<input type="search" results="5" placeholder="Zoeken..." />



Met results wordt bepaald hoeveel van de vorige zoekopdrachten in het veld moeten worden weergegeven.

Let op: Het results-attribuut maakt geen deel uit van de HTML5-specificatie.