In dit voorbeeld worden Javascript, DOM en CSS gecombineerd om bepaalde elementen in een html formulier zichtbaar/onzichtbaar te maken n.a.v. de keuzes die gemaakt worden in een select field. Handig bijvoorbeeld wanneer bepaalde opties alleen relevant zijn in verband met andere keuzemogelijkheden.
Een 'onChange eventhandler' op het select <select> input veld in het formulier, triggered een javascript functie die eerst bepaald welke option-waarde gekozen is. Vervolgens wordt door een 'conditional' (if) clausule bepaald of naar aanleiding van de gemaakte keuze een bepaald element in het html document zichtbaar of onzichtbaar moet worden. Dit laatste gebeurt door de 'CSS display property' van een div element te manipuleren met de 'getelementbyid()' methode.
Je gebruikt deze javascript code in een formulier door de volgende event handler aan de <select> opening tag toe te voegen:
onChange="latenzien('divnaam',this.name,'trigger-optie')
Hierbij is 'divnaam' de (unieke) id van de div die zichtbaar/ onzichtbaar gemaakt wordt. 'Trigger-optie' de <option> waarde die ervoor zorgt dat de onzichtbare div zichtbaar wordt. De div met de verborgen formulier elementen maak je in eerste instantie onzichtbaar dmv de CSS display property.
Copy/paste voorbeeld html formulier met <select> javascript:
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<script language="Javascript">
<!--
function latenzien(id,veld,waarde)
{
x = document.formulier.elements[veld].selectedIndex;
if (document.formulier.elements[veld].options[x].text == waarde)
{document.getElementById(id).style.display = 'block';}
else
{document.getElementById(id).style.display = 'none';}
}
-->
</script>
<style type="text/css">
.verborgen
{
display:none;
font-size:11px;
padding:4px;
}
</style>
</head>
<body>
<form name="formulier">
<select name="selectieveld" onChange="latenzien('toverdiv',this.name,'blablabla')">
<option></option>
<option>blabla</option>
<option>blablabla</option>
<option>blablablabla</option>
</select>
<div id="toverdiv" class="verborgen">Hoi hoe is het?<br>
<input type="checkbox"> goed<br>
<input type="checkbox"> slecht
</div>
<br> <br>
<select name="selectieveld2" onChange="latenzien('toverdiv2',this.name,'blablablabla')">
<option></option>
<option>blabla</option>
<option>blablabla</option>
<option>blablablabla</option>
</select>
<div id="toverdiv2" class="verborgen"> Gaat het goed?
<br>
<input type="radio"> ja<br>
<input type="radio"> nee
</div>
</form>
</body>
</html>



Dus, wat moet bij: function latenzien(id,veld,waarde) komen
en wat bij: <select name="selectieveld" onChange="latenzien('toverdiv',this.name,'blablabla')"> ?
Kan je gewoon door gaan met <select name="selectieveld" onChange="latenzien('toverdiv',this.name,'blablabla'); latenzien2(....)">