13. <form action="verwerk.php" method="post">
<!-- hier komen de form elementen
die gebruiker om input vragen. -->
<input type="submit" value="Verzenden">
</form>
Het formulier moet verzonden
kunnen worden
Of je kan het button element gebruiken
15. <form action="verwerk.php" method="post">
<label for="voornaam">Voornaam:</label>
<input type="text" id="voornaam">
<input type="submit" value="Verzenden">
</form>
Het invulveld moet een beschrijvend
label krijgen dat de gebruiker helpt
17. Gebruik altijd een label
• Zorg voor een duidelijke link tussen het label en het
formulierelement: het for attribuut van het label geef
je dezelfde waarde als de id van het formelement
• Plaats een label vóór het formulierelement:
screenreaders lezen het voor maar negeren andere tekst
• Een label is klikbaar en maakt je formulier dus
gebruiksvriendelijker
• Een label kan je makkelijk vormgeven met CSS
• Dankzij cursor:pointer toon je de gebruiker dat het
label klikbaar is
18. <form action="verwerk.php" method="post">
<label for="voornaam">Voornaam:</label>
<input type="text" id="voornaam" name="voornaam">
<input type="submit" value="Verzenden">
</form>
Het invulveld moet een name krijgen
(wordt meegestuurd naar server)
21. Toegankelijkheidstips
• Hou placeholder tekst kort en duidelijk
• Gebruik het title attribuut voor langere tekst
• Gebruik nooit enkel placeholder, een label
element is vereist (screenreaders)
• Plaats het label vóór het inputveld
• Browsers die placeholder niet ondersteunen,
zullen het gewoon negeren
• Gebruik placeholder! Je formulier wordt
gebruiksvriendelijker
28. <form autocomplete="off">
• Zet autocomplete af voor elk formulierveld
• Je kan dit overroepen per individueel veld:
<input type="text" autocomplete>
34. Toegankelijkheidstips
• Verklaar het vereiste patroon aan de gebruiker
in het title of placeholder attribuut, of
tenminste in tekst naast het veld — sommige
browsers zullen de title tekst tonen als het
veld onjuist werd ingevuld!
• Gebruik alleen pattern wanneer dit strikt
noodzakelijk is. Frustreer je gebruikers niet.
• Oudere browsers negeren pattern gewoon
35. list
Koppelt een datalist aan een bepaald veld. De
waarde van het list attribuut moet hetzelfde
zijn als de id van een datalist element.
datalist
Een vooraf gedefinieerde lijst met opties.
42. Dit is een aanvaardbare fall-back in
oudere browsers
43. <form action="" method="" novalidate>
• Kan enkel gebruikt worden op het form element.
• Formulier zal niet gevalideerd worden bij submit.
<form action="process.php" novalidate>
<label for="email">Email:</label>
<input type="text" name="email" >
<input type="submit" value="Submit">
</form>
44. <input type="submit" formnovalidate>
• Kan enkel gebruikt worden op een submitknop.
• Formulier zal niet gevalideerd worden bij submit.
<form action="process.php">
<label for="email">Email:</label>
<input type="text" name="email">
<input type="submit" formnovalidate value="Save">
<input type="submit" value="Submit">
</form>
45. <input type="submit" value="Submit"
formaction="process.php">
• Kan enkel gebruikt worden op submitknoppen
• Heeft hetzelfde effect als het action attribuut
op het form element
• Als een formulier verzonden wordt, checkt de
browser eerst of er een formaction attribuut
is. Als dat er niet is, gaat de browser op zoek naar
een action attribuut op het form element.
• Bestaan ook: formmethod, formenctype en
formtarget
59. Best ook met fieldset en legend
<fieldset>
<legend>Maak je keuze</legend>
<input type="radio" name="maaltijd"
value="frietjes" id="frietjes">
<label for="frietjes">Frietjes</label>
<input type="radio" name="maaltijd"
value="pizza" id="pizza">
<label for="pizza">Pizza</label>
<input type="radio" name="maaltijd"
value="boterham" id="boterham">
<label for="boterham">Boterhammetjes</label>
</fieldset>
60. fieldset en legend
• Gebruik fieldset om inhoudelijk
gerelateerde formulierelementen te groeperen
• Het is dus perfect om radio buttons of
checkboxes te groeperen
• Gebruik legend optioneel als bijschrift bij een
fieldset
71. <input type="search">
Oude browsers die de nieuwe formulierelementen
niet kennen, vallen terug op een standaard
tekstveld. Je kan het dus gerust bekijken als
ingebakken progressive enhancement.
83. <input type="tel">
• Er wordt geen specifieke syntax opgedrongen
want telefoonnummers verschillen wereldwijd
• Je kan het pattern attribuut gebruiken als je
per sé een specifieke syntax wil opdringen
• Usability tip: doe het niet! :)
96. Onthou
• Browsers die deze nieuwe input types niet kennen,
vallen altijd terug op input type="text"
• Je formulier wordt door de nieuwe input types
gebruiksvriendelijker voor een groeiend aantal
gebruikers
• Eventueel kan je browser support detecteren via
JavaScript feature detection (bijv. Modernizr)
• Valideer wat de gebruiker ingeeft altijd server-side
• Zoals steeds: test in zoveel mogelijk browserversies en
op zoveel mogelijk verschillende apparaten!