Als je in een multiple pulldown menu gebruik maakt van de CTRL functie kan je meerdere opties tegelijk selecteren (blauw maken). Echter doordat vele internet gebruikers deze functie niet weten, wordt deze nooit gebruikt. Bestaat er een mogelijkheid om middels javascript deze CTRL standaard ingedrukt te houden, zodat met 1 normale klik op de multiple pulldown hetzelfde is als 1 normale klik + CTRL.
onChange handler en dan met een interne array werken?
Is niet moeilijk hoor...
Is niet moeilijk hoor...
Klaar voor een nieuwe uitdaging.
een interne array? ik snap eigenlijk niet wat je bedoeld?
onChange -> pak de nieuwe geselecteerde optie, plaats die in een array, loop de array (van options van de select) af en zet alle options aan die in de array voorkomen.
past in 10 regels gok ik zo.
past in 10 regels gok ik zo.
Klaar voor een nieuwe uitdaging.
uuhmm...
[nog meer edit]
laat maar, kan niet zo simpel als ik dacht
Kan je niet gewoon 'houd ctrl ingedrukt om meerdere items te selecteren' onder je select zetten?
edit:
moment, ff coden
moment, ff coden
[nog meer edit]
laat maar, kan niet zo simpel als ik dacht
Kan je niet gewoon 'houd ctrl ingedrukt om meerdere items te selecteren' onder je select zetten?
[ Voor 135% gewijzigd door SchizoDuckie op 07-04-2003 20:29 ]
Als 't zonder de melding 'houd ctrl ingedrukt om meerdere items te selecteren' kan dan wil ik dit uiteraard proberen.
In de onChangen roep ik dit aan onChange="selectOpties(this.value)"
Deze verwijst naar onderstaande functie, die reeds alle opties in de array zet, echter nu moet ik nog uitvogelen hoe ik ze highlight cq selected maak.
In de onChangen roep ik dit aan onChange="selectOpties(this.value)"
Deze verwijst naar onderstaande functie, die reeds alle opties in de array zet, echter nu moet ik nog uitvogelen hoe ik ze highlight cq selected maak.
code:
1
2
3
4
5
6
| var i=0;
function selectOpties(element) {
var myArray = new Array();
myArray[i] = element;
i++;
} |
[ Voor 6% gewijzigd door mark_gl op 07-04-2003 21:58 ]
Ik heb nu:
alleen nu unselecten bij 1 item !
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| var myArray = new Array();
function selectOpties(element) {
if(myArray[element.selectedIndex] != null) {
myArray[element.selectedIndex] = null;
} else {
myArray[element.selectedIndex] = element;
}
element[element.selectedIndex].selected = false;
for (var j=0; j<myArray.length; j++){
if (myArray[j]){
element[j].selected = true;
}
}
} |
alleen nu unselecten bij 1 item !
[ Voor 103% gewijzigd door mark_gl op 07-04-2003 22:05 ]
Ik heb ook even wat gebakken:
2 nadelen: het schokt, en je hebt de ctrl-functionaliteit volledig om zeep geholpen (het is niet en-en hoewel dat waarschijnlijk wel te maken is).
Ik zou toch opteren voor een klein zinnetje eronder...
HTML:
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
36
37
38
39
40
41
42
| <html> <head> <title>no-ctrl multiple</title> <script type="text/javascript"> var buffer = new Array(); function doChange(el) { for (var i = 0; i < el.length; i++) { if (el[i].selected) { buffer[i] = (typeof buffer[i] == 'undefined' || !buffer[i])? true:false; } el[i].selected = buffer[i]; } } </script> </head> <body> <form name="myForm"> <select name="myMultiple" size="10" multiple="multiple" onchange="doChange(this)"> <option value="number 1">number 1</option> <option value="number 2">number 2</option> <option value="number 3">number 3</option> <option value="number 4">number 4</option> <option value="number 5">number 5</option> <option value="number 6">number 6</option> <option value="number 7">number 7</option> <option value="number 8">number 8</option> <option value="number 9">number 9</option> <option value="number 10">number 10</option> </select> </form> </body> </html> |
2 nadelen: het schokt, en je hebt de ctrl-functionaliteit volledig om zeep geholpen (het is niet en-en hoewel dat waarschijnlijk wel te maken is).
Ik zou toch opteren voor een klein zinnetje eronder...
Intentionally left blank
Pagina: 1