Toon posts:

[js] Contrustor Option veranderen...

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik maak gebruik van de volgende functie:
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
27
28
29
30
31
function move (from, to) {
    var fbox = new Array();
    var tbox = new Array();
    var lookup = new Array();

    for (i=0; i<to.length; i++) {
        if (to.options[i].value == -1) continue;
        lookup[to.options[i].text] = to.options[i].value;
        tbox[i] = to.options[i].text;
    }
    for (i=0; i<from.length; i++) {
        if (from.options[i].value == -1) continue;
        lookup[from.options[i].text] = from.options[i].value;
        if (from.options[i].selected)
            tbox[tbox.length] = from.options[i].text;
        else
            fbox[fbox.length] = from.options[i].text;
    }

    fbox.sort();
    tbox.sort();
    from.length = 0;
    to.length = 0;

    if (fbox.length == 0)
        from[0] = new Option('', -1);
    for (i=0; i<fbox.length; i++)
        from[i] = new Option(fbox[i], lookup[fbox[i]]);
    for (i=0; i<tbox.length; i++)
        to[i] = new Option(tbox[i], lookup[tbox[i]]);
}


daarmee kan ik options van de ene naar de andere selectbox verplaatsen.

Nu is echter het probleem dat hij dan alleen de text en de value meeneemt, en dat is logisch want bij het aanmaken van de option kan je alleen die dingen invoeren.
Mijn options bevatten echter meer attributen, zoals bijvoorbeeld style, etc... en nog meer veel belangrijkere attributen.

Nu denk ik dat ik , om het meegeven van die gegevens, de constructor van de option moet veranderen, ik kan hier echter geen informatie over vinden en mijn eigen probeersels hebben niks opgelevert.

Kan iemand mij vertellen hoe het maken van deze constructor in zijn werk gaat, of doe ik te moeilijk en zijn er andere oplossingen???

Verwijderd

Gisteren nog heb ik een dergelijk scriptje geschreven, bij wijze van test. Dat scriptje verplaatst echt een option naar een andere selectbox. Dus geen kopie, maar het origineel, inclusief alle styles waarschijnlijk.

Zie daarvoor dit topic.

Verwijderd

Topicstarter
Ok ik gebruik nu dus deze:
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
27
28
function movem(fromElementName, toElementName)
{
    fromElement = document.forms.item(0).elements.namedItem(fromElementName);
    toElement = document.forms.item(0).elements.namedItem(toElementName);
    
    for (var i = fromElement.options.length - 1; i >=0; i--)
    {
        if (fromElement.options.item(i).selected)
        {
            element = fromElement.removemChild(fromElement.options.item(i));
            element.selected = false;
            
            for  (var j = 0; j < toElement.options.length; j++)
            {
                if (toElement.options.item(j).value > element.value)
                {
                    toElement.insertBefore(element,toElement.options.item(j));
                    break;
                }
            }
            
            if (!element.parentElement)
            {
                toElement.appendChild(element);
            }
        }
    }
}

ik heb onderstaande code op mijn selectbox staan. de box war hij heen moet verplaatsen is afhankelijk van de waarde toolselected. deze boxen eindigen allemaal op: '[]'
code:
1
ondblclick="var selected=form1.toolselected.value; move(this.form.elements['pers_besch[]'], this.form.elements[selected+'[]']);"

Nu krijg ik een foutmelding object verwacht..line 50 .. Enig idee?

[ Voor 4% gewijzigd door Verwijderd op 15-01-2003 13:29 ]


Verwijderd

Topicstarter
lama...hele domme fouten....