Ik heb de volgende code samengesteld, waarbij je in een selectbox:
een item aan kunt klikken en vervolgens 1 plaats omhoog/omlaag kunt
verplaatsen. (geen kunst). De bedoeling is echter dat hij na deze actie
het verplaatste item weer selected maakt. DAT LUKT, maar alleen
bij Moveup; bij Movedown, gooit-ie het hele item naar de onderste rij.
Vaag. Want als je alleen de regel
dbox.options[i+1].selected=true;
weglaat, dan doet ie de functie (omlaag) wel goed.
Wat doe ik verkeerd?
een item aan kunt klikken en vervolgens 1 plaats omhoog/omlaag kunt
verplaatsen. (geen kunst). De bedoeling is echter dat hij na deze actie
het verplaatste item weer selected maakt. DAT LUKT, maar alleen
bij Moveup; bij Movedown, gooit-ie het hele item naar de onderste rij.
Vaag. Want als je alleen de regel
dbox.options[i+1].selected=true;
weglaat, dan doet ie de functie (omlaag) wel goed.
Wat doe ik verkeerd?
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
32
33
34
35
| function Moveup(dbox) {
for (i = 0; i < (dbox.options.length); i++) {
if (dbox.options[i].selected && dbox.options[i] != "" && dbox.options[i] != dbox.options[0]) {
var tmpval = dbox.options[i].value;
var tmpval2 = dbox.options[i].text;
dbox.options[i].value = dbox.options[i - 1].value;
dbox.options[i].text = dbox.options[i - 1].text
dbox.options[i-1].value = tmpval;
dbox.options[i-1].text = tmpval2;
for(j=0; j < (dbox.length); j++) {
dbox.options[j].selected=false;
}
dbox.options[i-1].selected=true;
}
}
dbox.focus();
}
function Movedown(dbox) {
for (i = 0; i < (dbox.options.length); i++) {
if (dbox.options[i].selected && dbox.options[i] != "" && dbox.options[i+1] != dbox.options[dbox.options.length]) {
var tmpval = dbox.options[i].value;
var tmpval2 = dbox.options[i].text;
dbox.options[i].value = dbox.options[i + 1].value;
dbox.options[i].text = dbox.options[i + 1].text
dbox.options[i+1].value = tmpval;
dbox.options[i+1].text = tmpval2;
for(j=0; j < (dbox.length); j++) {
dbox.options[j].selected=false;
}
dbox.options[i+1].selected=true;
}
}
dbox.focus();
} |
[ Voor 3% gewijzigd door crisp op 27-10-2003 13:23 . Reden: code fix :) ]