jQuery Academy · Les

Validatielogica voor client-side formulieren

Implementeer geavanceerde client-side validatieregels, geef gebruikers direct feedback en waarborg de gegevensintegriteit vóór verzending met aangepaste jQuery-validatie.

Les 2 van 311 stappen

Validatielogica voor client-side formulieren is een gratis jQuery Academy-les op CoddyKit. Dit is les 2 van 3. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject jQuery Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus jQuery Academy bevat in totaal 3 lessen.

Waarom formulieren aan de clientzijde valideren?

Validatie van formulieren aan de clientzijde controleert de invoer van gebruikers voordat die naar de server wordt verzonden. Dit is een cruciale stap bij het bouwen van gebruiksvriendelijke webtoepassingen.

  • Betere gebruikerservaring: Gebruikers krijgen direct feedback over fouten, zodat ze vergissingen kunnen corrigeren zonder op een reactie van de server te wachten.
  • Minder serverbelasting: Ongeldige gegevens worden vroeg onderschept, waardoor je server geen onnodige verzoeken hoeft te verwerken.
  • Snellere interacties: Doordat pagina's niet opnieuw worden geladen, voelt het formulier sneller aan en reageert het vlotter.

Verder dan eenvoudige HTML5-validatie

HTML5 biedt eenvoudige validatiekenmerken zoals required, type="email" en pattern. Hoewel ze nuttig zijn, bieden ze vaak niet genoeg flexibiliteit voor complexe bedrijfsregels of aangepaste feedback.

HTML5 kan bijvoorbeeld niet eenvoudig controleren of een wachtwoord aan specifieke sterktecriteria voldoet, zoals minimaal 8 tekens, één cijfer en één symbool, of dat twee wachtwoordvelden overeenkomen. Dit is waar jQuery van pas komt!

Formulierverzending onderscheppen

De eerste stap bij aangepaste validatie is voorkomen dat de browser het formulier op de standaardmanier verzendt. Hiervoor gebruiken we de .submit()-eventhandler van jQuery en event.preventDefault().

Zo kunnen we eerst onze validatielogica uitvoeren. Als het formulier geldig is, kunnen we het daarna handmatig verzenden, of via AJAX versturen. Dat behandelen we in een andere les.

<!-- HTML part (imagine this exists) -->
<form id="myForm">
  <input type="text" id="username" required>
  <button type="submit">Submit</button>
</form>

<script>
  $(document).ready(function() {
    $('#myForm').submit(function(event) {
      // Stop the form from submitting normally
      event.preventDefault(); 
      console.log("Form submission intercepted!");
      // Here, you'd add your validation logic
    });
  });
</script>

Een aangepaste validatiefunctie structureren

Het is een goede gewoonte om je validatielogica in een herbruikbare functie onder te brengen. Deze functie kan true teruggeven als het formulier geldig is en anders false.

Daarna kun je deze functie aanroepen in de submit-eventhandler van je formulier om te bepalen of je met verzenden doorgaat.

<!-- HTML part -->
<form id="loginForm">
  <input type="text" id="email" placeholder="Email">
  <button type="submit">Login</button>
</form>

<script>
  function validateLoginForm() {
    let isValid = true;
    const email = $('#email').val();

    if (email === '' || !email.includes('@')) {
      console.log("Invalid email!");
      isValid = false;
    }
    // More validation checks here...
    return isValid;
  }

  $(document).ready(function() {
    $('#loginForm').submit(function(event) {
      event.preventDefault();
      if (validateLoginForm()) {
        console.log("Form is valid! Submitting...");
        // $(this).off('submit').submit(); // To submit programmatically
      } else {
        console.log("Form has errors. Please fix.");
      }
    });
  });
</script>

De lengte van een tekstveld valideren

Een veelgebruikte validatieregel is controleren of de invoer van tekst een minimale of maximale lengte heeft. Dat doen we eenvoudig door de .val() van een invoerveld op te vragen en de eigenschap .length ervan te controleren.

We leggen een minimale lengte van 5 tekens voor gebruikersnamen vast.

<!-- HTML part -->
<form id="userForm">
  <input type="text" id="username" placeholder="Username">
  <button type="submit">Create User</button>
</form>

<script>
  function validateUsernameLength() {
    const username = $('#username').val();
    if (username.length < 5) {
      console.log("Username must be at least 5 characters long.");
      return false;
    }
    return true;
  }

  $(document).ready(function() {
    $('#userForm').submit(function(event) {
      event.preventDefault();
      if (validateUsernameLength()) {
        console.log("Username is valid!");
      } else {
        console.log("Validation failed.");
      }
    });
  });
</script>

Directe feedback aan gebruikers geven

Alleen fouten naar de console loggen is niet genoeg voor gebruikers! We moeten duidelijke, directe feedback op de pagina zelf weergeven. Je kunt foutmeldingen naast velden plaatsen of ongeldige invoer markeren.

We voegen een element <span> toe om een foutmelding weer te geven wanneer de gebruikersnaam te kort is.

<!-- HTML part -->
<form id="userFormFeedback">
  <label for="usernameFeedback">Username:</label>
  <input type="text" id="usernameFeedback" placeholder="Min 5 chars">
  <span id="usernameError" style="color: red;"></span>
  <button type="submit">Create User</button>
</form>

<script>
  $(document).ready(function() {
    $('#userFormFeedback').submit(function(event) {
      event.preventDefault();
      const username = $('#usernameFeedback').val();
      const $errorSpan = $('#usernameError');

      if (username.length < 5) {
        $errorSpan.text("Username too short!");
        $('#usernameFeedback').css('border', '1px solid red');
      } else {
        $errorSpan.text("");
        $('#usernameFeedback').css('border', '');
        console.log("Username is valid!");
      }
    });
  });
</script>

E-mailadressen valideren met reguliere expressies

Voor complexe patroonherkenning, zoals e-mailindelingen, zijn reguliere expressies (regex) onmisbaar. De JavaScript-methode RegExp.test() is hiervoor ideaal.

Een eenvoudige regex voor e-mailadressen kan controleren op tekens, een '@'-symbool en een domein. Denk eraan dat een zeer strikte regex voor e-mailadressen onnodig complex kan worden. Zoek daarom naar een goede balans.

<!-- HTML part -->
<form id="emailForm">
  <label for="userEmail">Email:</label>
  <input type="text" id="userEmail" placeholder="your@example.com">
  <span id="emailError" style="color: red;"></span>
  <button type="submit">Subscribe</button>
</form>

<script>
  $(document).ready(function() {
    $('#emailForm').submit(function(event) {
      event.preventDefault();
      const email = $('#userEmail').val();
      const $errorSpan = $('#emailError');
      // Basic email regex: something@something.something
      const emailRegex = /^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$/;

      if (!emailRegex.test(email)) {
        $errorSpan.text("Invalid email format.");
        $('#userEmail').css('border', '1px solid red');
      } else {
        $errorSpan.text("");
        $('#userEmail').css('border', '');
        console.log("Email is valid!");
      }
    });
  });
</script>

Numerieke bereiken valideren

Soms moet je controleren of een getal binnen een specifiek bereik valt, bijvoorbeeld een leeftijd tussen 18 en 65 of een hoeveelheid tussen 1 en 100. We kunnen de waarde van de invoer naar een getal omzetten en eenvoudige vergelijkingen uitvoeren.

Vergeet niet om invoer als tekenreeks vóór numerieke vergelijkingen naar een getal om te zetten met parseInt() of parseFloat().

<!-- HTML part -->
<form id="ageForm">
  <label for="userAge">Your Age:</label>
  <input type="number" id="userAge" placeholder="Enter age">
  <span id="ageError" style="color: red;"></span>
  <button type="submit">Submit Age</button>
</form>

<script>
  $(document).ready(function() {
    $('#ageForm').submit(function(event) {
      event.preventDefault();
      const ageInput = $('#userAge').val();
      const age = parseInt(ageInput, 10); // Convert to integer
      const $errorSpan = $('#ageError');

      if (isNaN(age) || age < 18 || age > 65) {
        $errorSpan.text("Age must be between 18 and 65.");
        $('#userAge').css('border', '1px solid red');
      } else {
        $errorSpan.text("");
        $('#userAge').css('border', '');
        console.log("Age is valid!");
      }
    });
  });
</script>

Meerdere validatieregels combineren

Voor formulieren zijn vaak meerdere validatieregels nodig voor één veld of voor verschillende velden. Je kunt deze controles in je validatiefunctie achter elkaar uitvoeren.

Een veelgebruikt patroon is om eerst van geldigheid uit te gaan en vervolgens isValid = false in te stellen als een regel niet slaagt. Zo kun je alle fouten verzamelen voordat je ze aan de gebruiker toont.

  • Roep afzonderlijke hulpfuncties voor validatie aan.
  • Sla de resultaten op in een Booleaanse vlag.
  • Geef alle relevante foutmeldingen weer.

Test je validatievaardigheden

Bekijk een formulierveld voor een 'Product Code' dat aan twee regels moet voldoen:

  1. Het moet precies 6 tekens lang zijn.
  2. Het mag alleen hoofdletters en cijfers bevatten (A-Z, 0-9).

Welk jQuery-fragment valideert het invoerveld 'productCode' correct en toont een foutmelding?

Samenvatting: validatie aan de clientzijde

In deze les heb je geleerd hoe je robuuste validatie van formulieren aan de clientzijde met jQuery implementeert. We hebben het volgende behandeld:

  • Het belang van validatie aan de clientzijde voor gebruikerservaring en prestaties.
  • Formulierverzendingen onderscheppen met event.preventDefault().
  • Aangepaste validatiefuncties structureren.
  • Regels implementeren voor tekstlengte, e-mailpatronen (regex) en numerieke bereiken.
  • Duidelijke, directe feedback aan gebruikers geven.

Als je deze technieken beheerst, kun je interactievere formulieren bouwen die minder foutgevoelig zijn!

Gratis beginnen

Leer JavaScript met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
22
Lessen
48

Veelgestelde vragen

Is de les “Validatielogica voor client-side formulieren” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad jQuery Academy, waaronder “Validatielogica voor client-side formulieren”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus jQuery Academy bevat in totaal 3 lessen.

Wat leer ik in “Validatielogica voor client-side formulieren”?

Implementeer geavanceerde client-side validatieregels, geef gebruikers direct feedback en waarborg de gegevensintegriteit vóór verzending met aangepaste jQuery-validatie. Je oefent met jQuery Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met jQuery Academy te beginnen?

Ervaring vooraf is niet nodig. jQuery Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 3.

Hoe lang duurt de les “Validatielogica voor client-side formulieren”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over jQuery Academy?

Ja. Elke les over jQuery Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Dynamische formuliervelden manipuleren
  2. Validatielogica voor client-side formulieren
  3. AJAX-formulierverzending en feedback
← Terug naar jQuery Academy