MBO-SD : De site voor software developer in het MBO
Inputvelden controleren
Controleren van een inputveld
Zoals je bij HTML hebt geleerd kan je inputvelden in een formulier bepaalde informatie/ attributen meegeven om deze voordat het formulier verstuurd wordt gecontroleerd worden, is de informatie niet correct, dan wordt het formulier niet verstuurd en krijg je een foutmelding te zien.
<form method="post">
Username: <input type="text" name="username" required><br>=>
Email: <input type="email" name="useremail" required><br>
<input type="submit" value="verstuur">
</form>
In het bovenstaande formulier zal als je de velden leeg laat, een fout komen dat de username en email adres
gevuld moeten zijn.
LET OP: Altijd maar 1 veld en 1 controle
Je krijgt als je op de submit-knop klikt maximaal 1 foutmelding te zien over 1 oorzaak.
- Username leeg & email adres leeg - Je krijgt de foutmelding dat username gevuld moet zijn.
- Username gevuld & email adres leeg - Je krijgt de foutmelding dat email gevuld moet zijn.
- Username & email gevuld, maar incorrect e-mail adres - Je krijgt de foutmelding dat het email adres niet correct is.
- Alles correct ingevuld, je kan het formulier versturen
Controleren met JavaScript
Met JavaScript kan je ook een los inputveld, ook als het niet in een formulier staat, controleren. Dit kan met twee methodes die je op een inputveld-element kan aanroepen.
.checkValidity()
Met de methode .checkValidity()
krijg je een boolean terug (true/ false). Het is true als het
input veld volgens de methode goed is, false als er iets fout is. In onderstaand voorbeeld is er in de
HTML een input veld als volgt:
<input type="email" class="useremail" required>
const userEmailElement = document.querySelector('.useremail');
if (!userEmailElement.checkValidity()) {
alert('Dat is geen geldig e-mail adres');
}
Kijk goed naar de uitroepteken !
in de if-conditie. Als chackValidity false is zal de code van
de if-statement uitgevoerd worden.
.reportValidity()
Een andere optie is om de controle van het inputveld te tonen (en te controleren) je hoeft dan zelf geen code/ popup/ alert te schrijven om de gebruiker op de hoogte te stellen.
const userEmailElement = document.querySelector('.useremail');
if (!userEmailElement.checkValidity()) {
userEmailElement.reportValidity();
}
Eigen JavaScript validatie
Natuurlijk kan je ook eigen JavaScript validatie gebruiken. Dit is soms handiger, denk bijvoorbeeld aan dat
het makkelijk is om de HTML aan te passen (bv. de required
attribute via de developers
console
van een element te halen. En dan is het met alleen JavaScript wat lastiger.
Of je wilt een invoerwaarde controleren of dit een bepaalde naam (van een vereniging/ school) of een deel van
een e-mail adres (@rocmondriaan) bevat. Dergelijke 'lastigere' controles kan je niet met de basis HTML
attributen opvangen en dan zal je met de .value
attribute op het element de waarde moeten
ophalen en eigen validatie schrijven.
HTML Attribute cheatsheet
In de onderstaande lijst vind je de meest voorkomende attributen en types die je kan gebruiken voor
formulier validatie/ ondersteuning. Bij onderstaande types blijft een invoerveld met text in te voeren,
andere opties als type="checkbpx"
of type="button"
staan niet in de lijst.
LET OP:
de weergave van de velden kan verschillen per webbrowser!
type attribute
<input type="text" name="username">
Waarde | Omschrijving |
---|---|
text | Dit is de standaard, alles mag/ is goed |
color | Geeft een color-picker |
password | Veld is gelijk aan text, maar de invoer is verborgen |
Veld moet een geldig e-mail adres bevatten (iets@iets.tld) | |
number | Invoer moet een geldig getal zijn, met attribute min/ max kan je minimale en maximale waarde aan geven, met step met hoeveel het veld om hoog mag/ kan |
range | Maakt een slider tussen de min en max attribute (standaard 0-100) |
date | Je krijgt een datum-picker, veld moet een geldige datum zijn |
time | Je krijgt een tijd (uren/ minuten) picker, invoer moet geldige tijd zijn (HH:MM) |
datetime | Combinatie van bovenstaande |
week/month | Je krijgt een week of maand picker |
url | Invoer moet een correcte URL zijn |
type attribute
<input type="text" required name="username">
Waarde | Omschrijving |
---|---|
required | Het veld is verplicht |
min="1" | Minimale waarde bij een range,number of date type |
max="100" | Maximale waarde bij een range, number of date type |
minlength="5" | Minimaal aantal karakters van een invoerveld |
maxlength="10" | Maximaal aantal karakters van een invoerveld |
step="0.01" | Geeft bij een getal invoer aan met hoeveel je omhoog of naar beneden mag gaan, ook handig om aan te geven dat je met decimalen wilt werken |
Jouw JavaScript
Op de MBO-SD Fiddle site kan je meer oefenen met deze stof.
Klik hier voor de MBO-SD Fiddle site