Javascript: Formulieren

  1. Inleiding
  2. Tekstvakken, tekstgebieden en verborgen elementen
  3. Keuzelijsten : select
  4. Aankruisvakjes: checkbox
  5. Keuzerondjes: radiobutton
  6. Formulieren versturen - formuliercontrole
  7. Formulierelementen uitschakelen - disable / enable
  8. Oefeningen

Inleiding

In de hoofdstukken DOM en Events heb je geleerd hoe je elementen op een webpagina kan benaderen en kan reageren op acties die worden ondernomen.

In dit hoofdstukken focussen we ons op formulierelementen zoals tekstvakken, keuzelijsten, aankruisvakken en keuzerondjes. Hoe kan je met andere woorden nagaan welke keuzes de gebruiker heeft gemaakt, en hoe kan je de keuzes codematig instellen. Dit hoofdstuk maakt veelvuldig gebruik van de cross-browser functie getObj.

Vanzelfsprekend ben je niet verplicht deze functie te gebruiken en kan werken volgens de oudere manier om formuliervelden aan te spreken:

document.form[0].elementnaam.eigenschap

Tekstvakken

De waarde van een tekstvak, tekstgebied en een verborgen veld manipuleer je via de eigenschap value van het element.

In onderstaand voorbeeld kan je een stukje tekst intikken in het tekstvak. Druk je op 'Toevoegen', dan wordt de tekst toegevoegd aan het tekstgebied.


Toon /verberg

Keuzelijsten

Waarden uitlezen

Een keuzelijst of SELECT-element heeft een aantal belangrijke eigenschappen:

Een optie uit een keuzelijst is een element uit de Array options van de keuzelijst, maar heeft op zich ook een aantal eigenschappen:

Voorbeeldtoepassing: info over de opties

Toon /verberg

Opties bijmaken en verwijderen

Keuzelijsten en opties kan je bijmaken met de methode createElement(), of door de eigenschap innerHTML (van een select-lijst of overkoepelend element) aan te passen.

Naast deze mogelijkheden kan je ook als volgt werken:

Een optie toevoegen aan een keuzelijst waarnaar wordt verwezen met de variabele lijst kan als volgt:

lijst.options[lijst.options.length]= new Option('tekstwaarde','valuewaarde');
of:
lijst.options[lijst.options.length]= new Option('tekstwaarde');

Een element uit een keuzelijst verwijderen kan door deze optie op null in te stellen:

lijst.options[index] = null;

Voorbeeldtoepassing: dynamische keuzelijst

Een eerste keuzelijst is gevuld met een aantal vast waarden. Wanneer de gebruiker een item in deze lijst selecteert, worden de waarden van een tweede lijst aangepast.

Toon /verberg

Meervoudige selecties

Door een lus te gebruiken en naar de eigenschap selected van elke optie te kijken kan je lijsten manipuleren waar meerdere selecties mogelijk zijn. Hiervoor is in de select-tag de optie multiple geactiveerd.

Voorbeeldtoepassing: deelnemers aan een studiedag

In een eerste lijst zie je namen van leerkrachten. Wanneer je 1 of meerdere namen selecteert kan je deze overbrengen naar een lijst met deelnemers aan de studiedag.

Toon /verberg

Checkbox

Je kan nagaan of een aankruisvakje is aangevinkt door de eigenschap checked te controleren. Je kan ook codematig deze eigenschap instellen.

Voorbeeldtoepassing: leuke sporten

In deze toepassing kan je opvragen welke selecties de gebruiker heeft gemaakt.
Het aantal checkboxen wordt dynamisch gecontroleerd.

Toon /verberg

Keuzerondjes: radiobuttons

Radiobuttons vormen een Array van elementen. We kunnen deze Array doorlopen met een lus om te zien welke optie aangeduid is: de eigenschap checked van dit aankruisvakje is true.

Voorbeeldtoepassing: geslacht

Duid aan wat je geslacht is en bekijk je keuze.

Toon /verberg

Formulieren versturen

Actie ondernemen voor het formulier wordt verstuurd

Dikwijls wens je programmatorisch nog een aantal acties te ondernemen wanneer een gebruiker een formulier verstuurt. Je wil formuliervelden controleren, verborgen velden aanvullen,...

Hier kan je handig gebruik maken van de onSubmit event-handler van het element FORM.

<form action="doeiets.asp" onsubmit="return controle()">

Hier roepen we de functie controle aan wanneer de gebruiker het formulier wenst te versturen. Wanneer de functie controle true retourneert wordt het formulier verstuurd. Krijg je false terug uit de functie controle, dan wordt het formulier niet verstuurd.

Voorbeeldtoepassing: controle naam en voornaam

Vooraleer het formulier te versturen controleren we of er iets is ingevuld als naam en voornaam.

Toon /verberg

Formulieren handmatig versturen en resetten

Wens je een formulier te versturen vanuit code, onafhankelijk van een eventuele submitbutton, dan kan dit op een eenvoudige manier:

document.forms[0].submit()

Het is echter niet aan te raden, wanneer je een formulier wenst te versturen, een gewone button te gebruiken die het formulier op bovenstaande manier verstuurd in plaats van een submit-button: gebruikers zonder javascript kunnen het formulier nu onmogelijk versturen.

Wanneer je de submit-functie gebruikt wordt de onsubmit event-handler niet uitgevoerd.

Een formulier resetten kan als volgt:

document.forms[0].reset()

Formulierelementen uitschakelen

Bepaalde formuliervelden mogen soms slechts onder specifieke voorwaarden door de gebruiker ingevuld of aangepast worden. Vandaar dat het met Javascript mogelijk is om formulierelementen uit te schakelen en in te schakelen.

Uitschakelen kan je doen door de eigenschap disabled van het formulierelement op true te plaatsen. Door deze eigenschap op false in te stellen wordt het element weer actief.

Voorbeeldtoepassing: aantal huisdieren

De gebruiker kan slechts een aantal huisdieren opgeven wanneer werd aangevinkt dat hij huisdieren heeft.

Toon /verberg

Oefeningen

Oefeningen

Meer tutorials:
leer ook: html | xhtml | css | asp | asp.net | c# | ado.net | linq | ajax | java | javascript
Valid HTML 4.01! Valid CSS! © - Cursusweb