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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé 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
    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
    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.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre Expert
    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 : 38
    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
    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 éclairé 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
    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
    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 !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre éclairé 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
    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