sélectionner une liste entière si checkbox cochée

sélectionner une liste entière si checkbox cochée - HTML/CSS - Programmation

Marsh Posté le 06-03-2008 à 22:14:34    

J'aurai besoin d'aide pour débugger mes erreurs en javascript.
J'aimerai qu'une liste déroulante soit entièrement sélectionnée si la case (checkbox) est cochée.
Toute la liste doit être en surbrillance.
Voici, un début de fonction:
 
function selectAll() {
 check = document.getElementById('chk');
 list = document.getElementsByName('menu');
 
 if (check.checked == true){  
  for (var i=0; i<list.length; i++) {
   list[i].checked = true;
  }
 }
}
 
Je me suis inspirée d'autres post que j'ai vu notamment lorsque que toutes les checkbox doivent cochées si la case est cochée.
Avec ma fonction la liste n'est pas sélectionnée et seulement le 1er élément de la liste prend la valeur true.
 
Merci pour l'aide
 

Reply

Marsh Posté le 06-03-2008 à 22:14:34   

Reply

Marsh Posté le 07-03-2008 à 09:23:59    

Sauf que là il faut utiliser selected et pas checked...
Le bon code est list.options[i].selected = true; (il faut également que ta liste soit du type multiple)


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 07-03-2008 à 09:26:34    

selected pour les options d'une liste, checked pour les checkbox.
Plutôt que de lire d'autres posts, je te conseillerais de lire la doc :o

 

edit: [:benou_grilled] par babass


Message édité par anapajari le 07-03-2008 à 09:27:01

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 07-03-2008 à 09:34:20    

Merci beaucoup tous marche à merveille!
Voici le code pour les autres qui serait intéressé:
 
function selectAll() {
 check = document.getElementById('chk');
 list = document.getElementById('menu');
 
 if (check.checked == true){  
  for (var i=0; i<list.options.length; i++) {
   list.options[i].selected = true;
  }
 }
else{
  for (var i=0; i<list.options.length; i++) {
   list.options[i].selected = false;
  }
}  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed