[javascript] select option toevoegen

Pagina: 1
Acties:

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 29-04 16:10
Vanuit een pagina open ik een popup box met een select erin. Daar kan de gebruiker een optie selecteren die vervolgens op de 'hoofdpagina' toegevoegd moet worden in een andere select box. Ik gebruik daarvoor de volgende code:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    function submitPersForm() {
        var persselect = opener.document.forms['klusbewerken'].elements["personeel[]"];
        var personeel = document.forms['extrapersoneel'].personeel;

        // voor elke geselecteerde optie kijken of deze er nog niet instaat
        for (i=0; i<personeel.length; i++) {
            if (personeel[i].selected==true) {
                // check of deze er al niet instaat
                var exists = false;
                for (j=0;j<persselect.length;j++)
                    if (persselect[j].value == personeel[i].value)
                        exists = true;
                
                // als deze optie er nog niet instaat
                if (!exists) {
                    var nieuweOptie = new Option(personeel[i].text, personeel[i].value);
                    persselect.options[perselect.length] = nieuweOptie;
                    return false;
                }
            }
        }
        return false;
    }


Het gaat in IE fout op het punt
persselect.options[perselect.length] = nieuweOptie;
in FF werkt het prima... het stomme is dat ik bijvoorbeeld persselect.size = 4; wel gewoon kan doen, dus met de variabele is niks mis. Ook .addOption en varianten werkt allemaal niet... wat zie ik over het hoofd buiten dan het feit dat FF ruled ;)

Aanvulling... de IE fout is: "de server heeft een uitzondering geretourneerd"... server? huh? wat?

Zelfs het onderstaande werkt niet:
code:
1
2
3
4
5
6
function submitPersForm() {
        var persselect = opener.document.forms['klusbewerken'].elements["personeel[]"];
        
        var myNewOption = new Option("text", "value");
        persselect.size =4;
        persselect.options[persselect.options.length] = myNewOption;


Size wordt netjes veranderd, optie komt er niet bij te staan...


Sorry niet helemaal jofel gezocht zie ik nu:
[rml][ JS] Vanuit popup veld aan select toevoegen? Ook in IE?[/rml]

Helaas staat daar de oplossing niet meer bij... crisp?

[ Voor 37% gewijzigd door jsiegmund op 09-10-2005 17:56 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:09

crisp

Devver

Pixelated

Bekende bug in IE; vanuit een popup kan je geen options toevoegen aan een select.
Workaround: zet in je gewone document een functie die de opties toevoegd, en roep die functie vanuit je popup aan :)

edit: mmz, die oplossing gaf ik daar ook al - de omschrijving lijkt me toch wel voldoende? :P
Anyways; hier is het oorspronkelijke voorbeeld: http://therealcrisp.xs4all.nl/meuk/form.html

[ Voor 33% gewijzigd door crisp op 09-10-2005 18:11 ]

Intentionally left blank


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 29-04 16:10
Damn dat had me weer een hoop tijd kunnen besparen, bedankt anders was ik helemaal gek geworden! Stupid bugs!