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 :

selectedIndex on IE7 et IE8


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Points : 537
    Points
    537
    Par défaut selectedIndex on IE7 et IE8
    Bonjour,
    j'ai développé un code HTML (fabriqué en PHP) qui marche sous Firefox (ou IE9)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function ChangerModule(Source) {
    var Champ = document.getElementById('ModuleActif');
    var Indice = Champ.selectedIndex;
    Valeur = Champ.options[Indice].value;
    window.location='index.php?Valeur='+Valeur;
    }
    Ou ModuleActif est un select HTML
    De retour dans le contexte d'utilisation de ce code, je me retrouve en IE8.
    Et le selectedIndex reste obstinément à 0.
    J'ai tenté un formulaire autour du select et un appel par getElementByName, mais c'est carrément une erreur de syntaxe ...
    Quelqu'un a une piste ?

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Utiliser selectedIndex pour obtenir la valeur d'un <select> n'est pas la bonne méthode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var Valeur = document.getElementById('ModuleActif').value;
    est largement suffisant.

  3. #3
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    un appel par getElementByName, mais c'est carrément une erreur de syntaxe ...
    C'est normal, il y a un "s" (getElementsByName) car cela retourne une collection et non pas un seul élément.

    A quoi sert le paramètre de la fonction ? 'Source' ?
    Comment est appelée cette fonction ? Sur le 'onchange' je présume ?

    Pour revenir à l'erreur, ce code a l'air d'être bon. Ce n'est pas plutôt parce que ton contenu est bloqué par IE ?

    Pour finir, un simple (document.getElementById('ModuleActif').value suffirait aplement

  4. #4
    Membre confirmé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Points : 537
    Points
    537
    Par défaut
    Bonjour, merci pour votre promptitude

    La variable Source n'était là qu'en cas d'Id multiple ... ce qui n'est plus le cas.

    le code Html correspondant
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <select id='ModuleActif' name='ModuleActif' onClick="ChangerModule()">
    <option value=''>quelconque</option>
    <option value='recette'>recette</option>
    <option value='07'>07</option>
    <option value='09'>09</option>
    <option value='fe'>fe</option>
    </select>
    et le code javascript modifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function ChangerModule() {
    var Valeur    = document.getElementById('ModuleActif').value;
    alert('Valeur:'+Valeur);
    window.location='index.php?ModuleActif='+Valeur;
    }
    sous FF, celà marche (aussi), mais sous IE7, cela ramène une valeur vide...
    Pff, ces vieux navigateurs, pénible ... :-)

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="ChangerModule()"


    Quand tu cliques sur le <select>, il n'y a effectivement aucune valeur sélectionnée ! C'est donc IE qui se comporte correctement !
    C'est l'événement onchange qu'il faut utiliser !

  6. #6
    Membre confirmé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Points : 537
    Points
    537
    Par défaut Résolu
    Et bien oui, c'était le onClick qui déconnait !
    Quel vieux programmeur je fais .... pire que IE ....
    Merci de votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. input type=file sans bouton parcourir sous ie7 et ie8
    Par marion5515 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 23/01/2012, 20h42
  2. Scripts ne fonctionent pas correctement avec IE7 et IE8
    Par whitespirit dans le forum jQuery
    Réponses: 2
    Dernier message: 18/05/2010, 07h00
  3. Transparence d'une DIV avec -moz-opacity:0.9 Ok IE7, Non IE8 et FF
    Par youri89 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 18/07/2009, 02h22
  4. Bug Contenteditable sous IE7 et IE8
    Par autofill dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 17/07/2009, 11h02
  5. Compatibilité IE7 et IE8
    Par solorac dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 25/05/2009, 14h45

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