Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1657 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Select simples/multiples : bug IE6?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Select simples/multiples : bug IE6?

n°1373357
Zogzog4
Posté le 23-05-2006 à 16:53:55  profilanswer
 

Bonjour à tous,
 
Je souhaite mettre en place deux fenêtres "Select", transférer des "options" de l'une à l'autre, puis submiter tout le contenu de la première fenêtre pour l'envoyer au serveur.
 
Pour une question d'ergonomie IHM, les deux champs Select sont en mode "multiple = false" afin de manipuler les éléments un à un.
 
Pour submiter le contenu du Select dans son ensemble, je passe donc "multiple = true" au moment du submit pour autoriser la multiple sélection, puis je sélectionne l'ensemble des options à l'aide d'une boucle avant de submiter.
 

Code :
  1. function PostSelect(formulaire)
  2. {
  3.     var cible = formulaire.elements["tab[]"];
  4.     // On compte le nombre d'item de la liste select
  5.     var nbCol = cible.length;
  6.     // on passe le Select en Multiple
  7.     cible.multiple = 'true';
  8.     // On lance une boucle pour selectionner tous les items
  9.     for (var a = 0; a < nbCol; a++)
  10.     {
  11.         cible.options[a].selected = 'selected';
  12.     }
  13.     // On soumet le formulaire
  14.    formulaire.submit();
  15. }


Le code fonctionne parfaitement sous Firefox.
 
Sous IE 6, il fonctionne.... presque. En effet, il se produit un phénomène qui ressemblerait à un bug d'IE : seule la dernière option du Select est sélectionnée... et transmise
 
Là où ça devient étrange, c'est qu'en apportant la modification suivante (le Alert au milieu du code), tout fonctionne parfaitement!!!
 
 

Code :
  1. function PostSelect(formulaire)
  2. {
  3.     var cible = formulaire.elements["tab[]"];
  4.     // On compte le nombre d'item de la liste select
  5.     var nbCol = cible.length;
  6.     // on passe le Select en Multiple
  7.     cible.multiple = 'true';
  8.  
  9.    alert ("hello world" );
  10.     // On lance une boucle pour selectionner tous les items
  11.     for (var a = 0; a < nbCol; a++)
  12.     {
  13.         cible.options[a].selected = 'selected';
  14.     }
  15.     // On soumet le formulaire
  16.    formulaire.submit();
  17. }


 
J'ai alors pensé que IE avait besoin d'un délai pour prendre en compte le changement d'état. J'ai donc inséré à la place du Alert une boucle for comptant de 1 à 100 ou 1000, sans résultat.
 
Bref, je ne sais pas comment résoudre ce problème.
 
Merci d'avance à ceux qui pourront m'aider...

mood
Publicité
Posté le 23-05-2006 à 16:53:55  profilanswer
 

n°1625626
boubacach
Posté le 17-10-2007 à 15:48:30  profilanswer
 

Moi aussi j'ai le même problème ! help me !!!

n°1625742
tpierron
Posté le 17-10-2007 à 16:43:43  profilanswer
 

Mouais, bon, c'est un bug. En général lorsque tu modifies ta page via DOM, les navigateurs bufferisent les modifications jusqu'à ce que la fonction javascript soit terminée. Ça permet d'éviter que chaque micro changement ne se répercute sur la page (avec les perfs désastreuses qui vont avec).
 
Franchement, ça me parait tordu ton truc. Changer ton select single en select multiple implique un changement graphique, ce changement doit certainement être mis de coté, le temps que ta fonction se termine. Perso, j'utiliserais plutôt un champ hidden et encoderais ta liste là dedans (genre séparés par des ";" ).


Message édité par tpierron le 17-10-2007 à 16:45:09

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Select simples/multiples : bug IE6?

 

Sujets relatifs
Problème de récupération valeur d'un select en javascript avec firefox[résolu] demande traduction francais-->php (trois lignes SIMPLES)
SELECT de la date la plus proche du jour actuelSession local vide (IIS 5.1 et IE6 et SP2)
problème d'écriture (double guillemets) SELECT values[résolu][FORMULAIRE]Liste deroulante à choix multiples!
scroll horizontal sur un selectRequetes Sql Simples !
Utiliser l'attribut SQL SELECT[php/Mysql] Probleme requete select
Plus de sujets relatifs à : Select simples/multiples : bug IE6?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR