Probeer document.createElement i.c.m. node.appendChild
Waar genereer je de tabel? Doe je dit aan de server kant (vanuit een PHP script bijvoorbeeld) ? Zoals Vegras al suggereert is het wellicht dan makkelijker om daar ook de checkboxes meteen te genereren.
Als je toch vanuit javascript checkboxes wilt genereren, probeer dan eens iets als dit:
Code:
<form name="InvoerPagina" onsubmit="DoTheCheck();">
<p>Kruis aan</p>
<!-- divje voor de checkboxes, let op het id -->
<div id="checkboxes"></div>
</form>
<script type="text/javascript">
function DoTheCheck() {
for (var i=0; i<3; i++) {
var input = document.getElementById('checkbox' + i); // <-- hier gebeurt het
alert('box ' + i + ' is ' + (input.checked ? '' : 'not') + ' checked.');
}
}
function createCheckboxes() {
// haal de div binnen het formulier op
var checkboxes = document.getElementById('checkboxes'); // <-- hier gebeurt het
// creeer drie checkboxes
for (var i=0; i<3; i++) {
// document.createElement is de aangewezen methode om nieuwe elementen te
// maken. Waag je niet aan document.write, veroorzaakt veel ellende
var input = document.createElement('input');
// gemaakt, nu attributen toewijzen
input.type = 'checkbox';
input.id = 'checkbox' + i; // <-- hier gebeurt het
input.checked = true;
// Nu nog toevoegen aan het formulier, binnen de div die we al hadden opgehaald...
checkboxes.appendChild(input); // <-- hier gebeurt het
}
}
createCheckboxes();
</script>
Bovenstaande code is ongetest, dat laat ik aan jou over, maar de aanpak moge duidelijk zijn:
* document.createElement('input') om een input element aan te maken
* document.type = 'checkbox' om er een checkbox van te maken
* input.id = 'checkbox' + i om een uniek id toe te wijzen
* node.appendChild(input) om het nieuwe element aan de dom toe te voegen.
* document.getElementById('checkbox' + i) om elementen op te halen
* inpup.checked bepaalt of hij aangevinkt is
Zoek ook eens met google op 'javascript dom' en 'w3c dom' bijvoorbeeld. De w3c dom methods zijn de 'officiele' API voor manipulatie van het document en als je ze eenmaal gebruikt zul je merken dat dingen makkelijker gaan en logischer worden omdat je niet meer de hele tijd met string manipulatie bezig bent zoal met document.write.
Volgens mij was een kleine fout hier:
Code:
document.write("<input type='checkbox' name=VakjeNaam[tel] value='yes'>");
de enige reden dat het niet werkte (de expressie 'VakjeNaam[tel]' wordt als string gezien), maar met document.write blijf je zulke foutjes maken. Dit had het moeten zijn:
Code:
document.write("<input type='checkbox' name='" + VakjeNaam[tel] + "' value='yes'>");
Succes ermee!