[dHTML] removeNode () / getElementById() probleem

Pagina: 1
Acties:

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Ik heb 't onderstaande scriptje geschreven om aan de hand van de geselecteerde dag, een nieuwe select te laten verschijnen.. Alleen werkt het nog niet helemaal..

Ben al de halve middag beziggeweest met debuggen, maar kom er echt niet uit.. Waarschijnlijk zie ik iets heel simpels over het hoofd (dat hoop ik tenminste :) )

Het script is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function voerUit() {
    var resultaten = new Array();
    var deOpties = document.forms['testForm'].elements['dag'].options;
    for (var i = 0; i < deOpties.length; i++) {
        if (deOpties[i].selected == true) { 
            alert('if: '+ i);
            if (!document.getElementById('uur[\'' + deOpties[i].value + '\']')) buildSelect(deOpties[i].value);
            //resultaten[resultaten.length++] = deOpties[i].value;
        } else {
            alert('else: '+ i);
            if (document.getElementById('uur[\'' + deOpties[i].value + '\']')) removeSelect(deOpties[i].value);
        }
    }
}

function buildSelect(welkId) {
    alert('buildSelect: ' +welkId);
    oElement = document.createElement('<select>');
    oElement.name = 'uur[\'' + welkId + '\']';
    document.all['urenDiv'].appendChild(oElement);
}

function removeSelect(welkId) {
    alert('removeSelect: '+welkId);
    document.getElementById('uur[\''+welkId+'\']').removeNode('true');
}

buildSelect() werkt prima, maar removeSelect() niet. Ik denk dat het aan getElementByid(blaat) ligt, maar ik kan niet vinden waar precies..
Hopenlijk kan iemand mij helpen ..

//edit:
http://www.sovenewmedia.nl/GoT/roostergedoe.html

  • Blue-eagle
  • Registratie: September 2000
  • Niet online
Mijn javascript kennis is gevorderd genoeg om een formulier te controleren, de rest doe ik serverside. Maar misschien ligt het hieraan?
code:
1
document.getElementById('uur[\''+welkId+'\']').removeNode('true')

Moet worden:
code:
1
document.getElementById('uur'+welkId+').removeNode('true')

:? Ik weet het niet hoor :) Maar misschien is het zo iets :D

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Nee, dat gaat niet lukken

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

code:
1
2
3
4
5
6
function buildSelect(welkId) {
    alert('buildSelect: ' +welkId);
    oElement = document.createElement('<select>');
    oElement.id = 'uur[\'' + welkId + '\']';
    document.getElementById('urenDiv').appendChild(oElement);
}

Today's subliminal thought is:


  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Jaaa!! Dankje Annie!

1) Nog even iets, via de search vond ik het antwoord dat het niet mogelijk was via HTML, maar misschien is er toch nog iemand die een goede oplossing heeft. Hoe krijg ik het voor elkaar dat je geen CTRL in hoeft te drukken om meerdere items te selecteren :?

//edit:

2) Ik heb nu de code naar dit veranderd (opties worden toegevoegd)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
oElement = document.createElement('<select>');
oElement.id = 'uur[\'' + welkId + '\']';
oOption = document.createElement('<option>');

for (a = 0; a < document.forms['testForm'].elements['dag'].options.length; a++) {
   if (document.forms['testForm'].elements['dag'].options[a].value == welkId) oOption.innerText = document.forms['testForm'].elements['dag'].options[a].innerText;
}
oOption.value = "";
oElement.appendChild(oOption);

for (var a = 1; a < 10; a++) {
       oOption = document.createElement('<option>');
    oOption.innerText = a + 'e';
    oOption.value = a;
    oElement.appendChild(oOption);
}
oElement.size = 10;
document.all['urenDiv'].appendChild(oElement);

't gaat om dit regeltje:
code:
1
oElement.size = 10;

Hiermee wil ik de grootte van de selectbox naar 10 zetten, maar dit werkt niet 100%. De eerste selectbox die aangemaakt wordt, blijft 1 optie groot. Als je er dan een tweede select bij laat maken, veranderd de size van de vorige in 10 opties, maar die van de nieuwe blijft op 1 optie hangen. :?