IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Select simples/multiples : Bug IE?


Sujet :

JavaScript

  1. #1
    Inactif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 77
    Points : 89
    Points
    89
    Par défaut Select simples/multiples : Bug IE?
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function PostSelect(formulaire)
    {
        var cible = formulaire.elements["tab[]"];
     
        // On compte le nombre d'item de la liste select
        var nbCol = cible.length;
        // on passe le Select en Multiple
        cible.multiple = 'true';
     
        // On lance une boucle pour selectionner tous les items
        for (var a = 0; a < nbCol; a++)
        {
            cible.options[a].selected = 'selected';
        }
        // On soumet le formulaire
       formulaire.submit();
    }
    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 (en grisé), tout fonctionne parfaitement!!!



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

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    IE réclame <select name="tab[]" multiple="">

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 77
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par jeca
    Bonjour,

    IE réclame <select name="tab[]" multiple="">
    Merci pour cette réponse!
    Malheureusement, si j'insert multiple="" dans la déclaration du Select, IE passe dès l'initialisation en mode "sélection multiple".

    Je cherches à initialiser le Select en "simple", puis à le passer en "multiple" au moment du submit.

    Je viens de tester une variante de cette proposition : multiple="false"
    Mais IE reste en mode multiple....

    Je ne suis pas une lumière en Javascript. Ai-je fais une erreur dans le code JS ou HTML?

    Voici la déclaration du Insert :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        <select name="tab[]" size="25" id="theMenu" multiple="" >

Discussions similaires

  1. select à choix multiple
    Par tribaleur dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 22/06/2006, 15h53
  2. selection simple mais résultat multiple dans combobox
    Par forzaxelah dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/06/2006, 14h21
  3. Désélection d'un select HTML multiple ?
    Par elitost dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/07/2005, 15h10
  4. Supprimer une option d'un select à choix multiple
    Par Oluha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/02/2005, 14h16
  5. Combinaison de deux selects simples
    Par devtrax dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/09/2004, 14h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo