Tutorial > Validatie
Nodum heeft verschillende validators om te gebruiken. Vooral bij het verwerken van een formulier kan het valideren van gegevens veel problemen voorkomen. Daarom beschikt nodum over een validatie-optie. Door middel van een set validators kun je het formulier controleren op geldige waarden en bij de gebruiker aangeven wat er mist in het formulier.
Voor het valideren van invoergegevens in een formulier zijn verschillende validators beschikbaar. Onderstaand vind je (nogmaals) de complete lijst:
Validator | Alias | Input | Toelichting |
---|---|---|---|
minlength |
Minimale lengte van de input | ||
maxlength |
Maximale lengte van de input | ||
lenght |
Lengte van de input | ||
alpha | Bevat a-z en A-Z één of meerdere keren | ||
alphanum | alphanumeric | Bevat a-z en A-Z en 0-9 één of meerdere keren | |
num | numeric | Bevat a-z en A-Z één of meerdere keren | |
Bevat een e-mailadres | |||
regexp |
regex, preg | Voldoet aan de reguliere expressie die als |
|
url | Bevat een URL (http(s)://xxx.yyy.zzz/qqq?rrr=...) | ||
upper | uppercase | Is volledig in hoofdletters | |
lower | lowercase | Is volledig in kleine letters | |
phone | tel | Bevat een telefoonnummer (lokaal en internationaal) | |
nonempty | Is niet leeg | ||
isempty | Is leeg | ||
ip | Bevat een IP-adres |
Met deze validators kan de validatie van een formulier op onderstaande wijze worden aangeroepen:
<h1>{{ 'Form Validation Sample'|t }}</h1>
{% set v = validate
.requireToken
.setRetention(3)
.setId('TESTFRM')
.setType('post')
.field('Tx', [ 'minlength(10)','isempty' ], 'Geef een toelichting op van min. 10 karakters (of leeg).'|t )
.field('Ds', 'mail', 'Vul e-mail adres in'|t )
%}
{% if v.complete and not v.error %}
<p class="alert alert-groen">
{{ 'Dank!'|t }}
</p>
{% else %}
{% if v.complete and v.error %}
<div class="alert alert-rood">
<b>{{ 'Los het volgende op:'|t }}</b>
<ul>
{% for error in v.getMessages %}
<li>{{ error }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
<form method="post" action="{{ index }}">
{{ v.getTokenHtml|raw }}
{% if 'Ds' in v.getErrorFields %}
<span class="text-rood">{{ v.getMessages.Ds }}</span>
{% endif %}
<input type="text" name="Ds" class="form-control" placeholder="{{ 'Mailadres'|t }}" value="" />
<br />
{% if 'Tx' in v.getErrorFields %}
<span class="text-rood">{{ v.getMessages.Tx }}</span>
{% endif %}
<textarea class="form-control" name="Tx" placeholder="{{ 'Toelichting'|t }}"></textarea>
<br />
<button class="btn btn-groen pull-right"><i class="fa fa-send"></i> {{ 'Versturen'|t }}</button>
</form>
{% endif %}
reCAPTCHA toevoegen
Het is ook mogelijk om een reCAPTCHA toe te voegen aan de validatie van je formulier. Er dient hiervor eerst een site (met correct domein) geregistreerd te zijn op deze site.
Na registratie krijg je een siteKey en een secret welke opgegeven dienen te worden in de algemene configuratie van je project;
[recaptcha]
sitekey = "xxxxxR8TAAAAAFShLx-ZvpTgxxxxxxjwMCkRpNQc"
secret = "xxxxxR8TAAAAAO6-XRe1SYlsxxxxxxxxXrW9sxxm"
!!!!Let op: bovenstaande codes zijn samples, vraag je eigen codes aan bij Google.
Om de Captcha te tonen in het formulier moet er binnen de