Accueil > Forum > > > > supprimer des valeurs dans un select multiple
supprimer des valeurs dans un select multiple
jeudi 29 novembre 2007 à 20:49:06 |
supprimer des valeurs dans un select multiple

attentio
|
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 :
- <select multiple>
- <option value="01">01</option>
- <option value="02">02</option>
- <option value="03">03</option>
- <option value="04">04</option>
- </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 :
- var l1 = document.getElementById('liste2');
-
for (var i=0; i < l1.options.length; i++){
- alert(l1.options[i].value );
-
-
// ca marche
- l1.options[i].selected="selected";
-
-
// ca marche pas
- l1.options[i]=null;
-
- alert(l1.options[i].value + ' non');
- }
|
merci de votre aide
|
|
jeudi 29 novembre 2007 à 21:52:02 |
Re : supprimer des valeurs dans un select multiple

PetoleTeam
|
Bonjour, l'affectation de nul à l'option ne la supprime pas
...
Pour supprimer physiquement l'option il te faut utiliser la méthode removeChild exemple :
//----------------
function Destroy(){ var Obj = document.getElementById('liste2'); for (var i=0; i < Obj.options.length-1; i++){ Obj.removeChild( Obj.options[i]); i--; // OBLIGATOIRE de decrementer i l'option n'existant plus, il faut revenir en arrière sinon on n'en detruit qu'un sur deux } }
voila mais il y a plus radical mais moins DOM...
//----------------
function Destroy(){
var Obj = document.getElementById('liste2');
Obj.innerHTML = ""; }
;0)
|
|
vendredi 30 novembre 2007 à 09:32:48 |
Re : supprimer des valeurs dans un select multiple

bultez
|
Bonjour, je préfère utiliser length.... mais chacun ses goûts !
<select multiple id="toto"> <option value="hein">un</option> <option value="de">deux</option> <option value="trou à">trois</option> <option value="cat">quatre</option> </select>
<script type="text/javascript"> document.getElementById("toto").length=0; </script>
Cordialement Bul [mon Site] [M'écrire]
|
|
vendredi 30 novembre 2007 à 13:48:49 |
Re : supprimer des valeurs dans un select multiple

attentio
|
J'ai essayé, ca ne marche pas ! le script fait planter ma page petite precision ma fonction doit vider ce select mais injecter les valeurs suprimés dans un autre select "liste1". C pour ça que j'avais pensé a ceci : il selectionne la premiere valeur, il l'injecte dans la liste1 (l2) puis efface la valeur selectionné puis selectionne la deuxieme valeur etc etc ...
var l1 = document.getElementById('liste2'); var l2 = document.getElementById('liste1'); for (var i=0; i < l1.options.length; i++){ alert(l1.options[i].value ); l1.options[i].selected="selected"; o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value); l2.options[l2.options.length]=o; l1.options[l1.options.length].selected.length=0; alert(l1.options[i].value + ' non'); }
merci encore de votre aide 
|
|
vendredi 30 novembre 2007 à 13:55:44 |
Re : supprimer des valeurs dans un select multiple

bultez
|
>>j'ai essayé, ca ne marche pas ! le script fait planter ma page tu causes à qui ? si c'est 0 moi, si, si, mon exemple fonctionne et sans planter et je parierais bien la même chose pour ce que propose PetoelTeam ! à priori, tu n'appliques pas comme il faut
>>petite precision ma fonction doit vider ce select mais injecter les valeurs >>suprimées dans un autre select "liste1". ah... la question est différente !
un tout ch'tit exemple d'utilisation ici
Cordialement Bul [mon Site] [M'écrire]
|
|
vendredi 30 novembre 2007 à 14:22:51 |
Re : supprimer des valeurs dans un select multiple

attentio
|
désolé bultez ... vraiament toutes les excuses j'avais oublié de renommer ma variable
j'ai fait ceci ... for (var i=0; i < l1.options.length; i++){ l1.options[i].selected="selected"; o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value); l2.options[l2.options.length]=o; l1.removeChild( l1.options[i]); i--; }
et ca marche tres bien ! et document.getElementById("liste2").length=0; marche très bien aussi
par contre j'ai un autre petit soucis lorsque je réinjecte les valurs dans la "liste 1"(l2) il me les places bien entendu a la fin du select hors je souhaiterais que mes option s'organise en fonction de leur valeurs
ex : si j'ai
- <select multiple name="liste1">
- <option value="01">01</option>
- <option value="03">03</option>
- <option value="04">04</option>
- </select>
- <select multiple name="liste2">
- <option value="02">02</option>
- </select>
et que je veux envoyer la valuer 02 dans la liste 1, il va se placer à la fin hors je voudrais qu'il se place entre 01 et 03. Comment pourrais-je m'y prendre
merci encore infiniment
|
|
vendredi 30 novembre 2007 à 14:45:18 |
Re : supprimer des valeurs dans un select multiple
|
vendredi 30 novembre 2007 à 17:55:11 |
Re : supprimer des valeurs dans un select multiple

attentio
|
aie ... aie ... aie !!! je m'en sort pas ! je n'arrive pas a ordonner les elements de liste 1 tel qu'ils le sont pas defaut ... je ne sais pas trop comment m'y prendre voici mon code si vous arrivez à vous y retrouver :
====================================== var l1 = document.getElementById('liste2'); var l2 = document.getElementById('liste1');
for (var i=0; i < l1.options.length; i++){ // on selectionne les un apres les autres les elements de la liste2 l1.options[i].selected="selected"; // on bascule l'element de la liste 2 vers la liste1 o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value);
/////////////////////////////////////////////// A REVOIR////////////////////////////////// //on place l'element dans la liste1 par ordre numerique
var tmp=l1.options[i].value.toLowerCase(); var pos; // on boucle for (var n=0;n<l2.length;n++) { pos=l2.options[n].value; if ( pos >= tmp ) { l2.options[l2.options.length]=o; // on deselectionne l'element ajouté dans la liste1 o.selected="selected"; //l2.selectedIndex=n; //n=l2.length; } }
///////////////////////////////////////////////////////////////////////////////////////////
// on supprime l'element ajouté dans la liste2
l1.removeChild( l1.options[i]);
// on deselectionne l'element ajouté dans la liste1 1 o.selected=""; i--; } ======================================
merci encore pour votre aide
|
|
samedi 1 décembre 2007 à 09:07:31 |
Re : supprimer des valeurs dans un select multiple

bultez
|
c'est plus un problème d'algo que de javascript, non ?
ch'tit exemple ?
on classe en fonction de .text, si existe déjà : on remplace, liste1 et liste2 plusieurs lignes possibles, mit un onchange dans liste1 pour vérifier,
à toi d'adapter si nécessaire
et d'ailleurs pourquoi mettre .value et .text égaux ?
et surtout égaux à selectedIndex+1 finalement ?
ce doit être pour l'exemple.... j'espère
brut de fonderie... on doit pouvoir largement améliorer/simplifier ! ( doux euphémisme )
si j'ai parfaitement compris le but de la manoeuvre
pas testé réellement/totalement ! à vérifier !
<select multiple id="liste1" onchange="alert(this.options[this.selectedIndex].value+'/'+this.options[this.selectedIndex].text);"> <option value="un">01</option> <option value="trois">03</option> <option value="quatre">04</option> </select> <select multiple id="liste2"> <option value="zéro">00</option> <option value="deux">02</option> <option value="trois modifié">03</option> <option value="dix">10</option> </select> <script type="text/javascript"> var l2=document.getElementById("liste2"); var l1=document.getElementById("liste1"); function met(ou,quoi) { l1.length++; for ( var n3 = l1.length-1; n3>ou; n3-- ) { l1.options[n3].value=l1.options[n3-1].value; l1.options[n3].text=l1.options[n3-1].text; } l1.options[ou].value=l2.options[quoi].value; l1.options[ou].text=l2.options[quoi].text; } for ( var n2 = 0; n2 < l2.length; n2++ ) { trv=false; for ( var n1 = 0; n1 < l1.length; n1++ ) { if ( l2.options[n2].text < l1.options[n1].text ) { met(n1,n2); n1=l1.length; trv=true; } else { if ( l2.options[n2].text == l1.options[n1].text ) { l1.options[n1].value = l2.options[n2].value; l1.options[n1].text = l2.options[n2].text; n1 = l1.length; trv=true; } } } if (!trv) met(n1,n2); } l2.length=0; </script>
Cordialement Bul [mon Site] [M'écrire]
|
|
Cette discussion est classée dans : supprimer, marche, alert, options, l1
Répondre à ce message
Sujets en rapport avec ce message
Recupérer le contenu de cette liste [ par voge ]
Voila j'essaye d'utiliser ce petit script : Choix Mails <!--script de déplacement d'une liste a
Récupérer les valeurs du script "Bascule" [ par nunor ]
Bonjour, je cherche à dynamiser le script "Basculer des éléments d'une liste à l'autre" J'arrive à alimenter les deux listes par des résultats mysql.
Liste déroulante [ par piep14 ]
Bonjour, j'essais de faire une newsletter pour mon site ! J'ai fait une liste déroulante qui contient les adresses emails.
pb avec popup [ par EksTaZia ]
j'ai un formulaire pour ajouter un ouvrage, et lorqu'on clik sur auteur, un popup s'ouvre avec toutes la liste des auteurs, je veux que lorsqu'on clik
Un tableau de select génére une erreur [ par arzoul ]
Salut,N'étant pas expert en Js et ayant cherché pendant qq heures, je me permets de venir poser ma question aux spécialistes :PVoici mon code, il perm
basculer des elements d'une liste a l'autre [ par attentio ]
Bonjour,voila j'ai un script qui me permet de basculer des elements d'une liste a l'autre, ca fonctionne mais je voudrais utilser non pas le nom mais
Liste double et javascript [ par daris ]
Bonjour, J'ai mis en place un système liste double en m'inpirant de ce site.Mais je sollicite de l'aide car mon scripte ne fonctionne pas convenableme
jquery callback qui fonctionne pas [ par ankify ]
bonjour, y a t il qu'un qui puisse me dire pourquoi ce code ne fonctionne pas: c'est une copie simplifiée de 2 modules qui fonctionnent 100%. celui-c
getElementById qui ne marche pas [ par chour03 ]
Bonjour !pour faire simple, j'ai une page qui ressembleà ca :......alert(document.i
basculer entre deux listes (débutant) [ par billy67000 ]
function Deplacer(l1,l2) { if (l1.options.selectedIndex>=0) { o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selected
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|