[JS] supprimer des valeurs dans un select multiple

supprimer des valeurs dans un select multiple [JS] - HTML/CSS - Programmation

Marsh Posté le 29-11-2007 à 20:44:17    

bonjour j'ai probleme avec une fonction JS. voila elle etait censé boucler pour supprimer tout les valeurs mais voila ca ne marche pas
par contre si je boucle pour selectionner toutes les valeur ca marche tres bien .. je ne comprends pas pourquoi
si j'ai  

Code :
  1. <select multiple>
  2. <option value="01">01</option>
  3. <option value="02">02</option>
  4. <option value="03">03</option>
  5. <option value="04">04</option>
  6. </select>


 
les boites d'alerte vont me donner si je mets simplement   l1.options[i].selected="selected";
alert > 01
alert > 01 non
alert > 02
alert > 02 non
alert > 03
alert > 03 non
alert > 04
alert > 04 non

... ca marche tres bien  !!!
 
par contre si j'ajoute la lign suivante l1.options[i]=null;
ca me donne ...
alert > 01
alert > 02 non
alert > 03
alert > 04 non

et la moitié des valeurs n'a pas été supprimer
 
je ne comprends pas pourquoi ...
 
voici mon code complet ...

Code :
  1. var l1 = document.getElementById('liste2');
  2. for (var i=0; i < l1.options.length; i++){
  3. alert(l1.options[i].value );
  4. // ca marche
  5.   l1.options[i].selected="selected";
  6. // ca marche pas
  7. l1.options[i]=null;
  8. alert(l1.options[i].value + ' non');
  9. }

 
 
merci de votre aide


Message édité par est_L le 29-11-2007 à 20:46:55
Reply

Marsh Posté le 29-11-2007 à 20:44:17   

Reply

Marsh Posté le 30-11-2007 à 08:33:14    

Je suis pas sûr mais comme ça au débotté je dirais que quand tu fais
 
l1.options[i]=null; avec i=0,  
 
tu supprimes la première occurence de ton tableau. Donc la première occurence devient :
 
<option value="02">02</option>
 
et ton deuxième alerte (toujours avec i=0) te sort bien celui là ("alert > 02 non" ) qui est devenu la première occurence de ton tableau. En même temps, je suis pas sûr d'être super clair.
 
 

Reply

Marsh Posté le 30-11-2007 à 08:50:27    

désolé, .. j'ai pas tout compris !

Reply

Marsh Posté le 30-11-2007 à 09:53:45    

document.getElementById('liste2').innerHTML = '';+

Reply

Marsh Posté le 30-11-2007 à 14:27:36    

ok merci ... C en effet + simple!

Reply

Sujets relatifs:

Leave a Replay

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