[js] CTRL functie multiple pulldown

Pagina: 1
Acties:

  • mark_gl
  • Registratie: September 2001
  • Laatst online: 20:09
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.

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 04-08 07:59

chem

Reist de wereld rond

onChange handler en dan met een interne array werken?
Is niet moeilijk hoor...

Klaar voor een nieuwe uitdaging.


  • mark_gl
  • Registratie: September 2001
  • Laatst online: 20:09
een interne array? ik snap eigenlijk niet wat je bedoeld?

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 04-08 07:59

chem

Reist de wereld rond

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.

Klaar voor een nieuwe uitdaging.


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

uuhmm...

edit:

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 ]

Stop uploading passwords to Github!


  • mark_gl
  • Registratie: September 2001
  • Laatst online: 20:09
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.

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 ]


  • mark_gl
  • Registratie: September 2001
  • Laatst online: 20:09
Ik heb nu:

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 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Ik heb ook even wat gebakken:
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