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 :

getElementsByName sous IE ?


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut getElementsByName sous IE ?
    Bonjours,

    Je crée une fonction qui doit afficher une image quand son id est selectionné dans un champs <select>, et forcéments, cache les autres.

    mes images ont toutes le même name, mais un id différents.

    IE, comme d'hab, me pose des problèmes: Il refuse le getElementsByName().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var idNonSelec = document.getElementsByName(name).item(i).id;
    document.getElementById(idNonSelec).style.display='none';
    Auriez-vous une solution?
    D'avance, merci.

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    peux tu nous montrer le contexte ?
    sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var idNonSelec = document.getElementsByName(name)[i].id;
    plutot

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonjours, merci de cette réponse aussi rapide.

    J'ai testé cette solution, malheureusement, elle ne résoud pas mon problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var idNonSelec = document.getElementsByName(name)[i].id;

    Si ça peut aider, voilà la fonction complète:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function aff_img(ident,name) {
    	var d = document.getElementById(ident);
    	for( i=0; i<document.getElementsByName(name).length; i++){
    		var idNonSelec = document.getElementsByName(name)[i].id;
    		document.getElementById(idNonSelec).style.display='none';
    	}
    	document.getElementById(ident).style.display='block';	
    }
    En gros, je l'appelle sur un select comme suit. En réalité, tout ça est généré avec un xslt_process().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select id="categorie" name="categorie" onchange="javascript:aff_img(this[this.selectedIndex].value,'cat');">
    <option>boite</option>
    <option>caisse</option>
    <option>autre</option>
    </select>
    Et c'est censé afficher une image parmi celles-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <img id="boite" name="cat" style="display:none" src="img/categorie/boite.jpg" width="75px" height="75px">
    <img id="caisse" name="cat" style="display:none" src="img/categorie/caisse.jpg" width="75px" height="75px">
    <img id="autre" name="cat" style="display:none" src="img/categorie/autre.jpg" width="75px" height="75px">
    Le tout est dans un tableau, (mais ça, je crois qu'on s'en fout, quoique...):
    <tr>
    <td>le select</td>
    <td>les images</td>
    </tr>

    J'éspère que ces morceaux de code aideront un peu.

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    lol erreur toute bète ...

    sous FF , si la valeur d'une option n'est pas remplit , FF prend le texte comme valeur IE non ( a raison d'ailleur )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <option>boite</option>
    <option>caisse</option>
    <option>autre</option>
    sois tu ajoutes une valeur sois tu remplaces :

    this[this.selectedIndex].value
    par
    this[this.selectedIndex].text


  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonjours,

    le_chomeur =>

    C'est la solution qu'il me fallait !
    Effectivement, l'erreur est facile à commettre.

    Je vais en profiter pour abuser un peu...

    maintenant que ça marche du feu de dieu, il me reste un petit pb à résoudre:
    Aucune image ne s'affiche.
    J'imagine qu'écrire ceci est un peu naïf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="javascript:aff_img(getElementById('categorie').text,'cat');">
    C'est du rab, je mets "résolu" dans quelques instants...

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Et voilà, j'ai trouvé!
    Il suffisait de recopier l'appel de la fonction classique !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="javascript:aff_img(document.getElementById('categorie')[document.getElementById('categorie').selectedIndex].text,'cat');">
    Merci encore à le_chomeur.

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

Discussions similaires

  1. getElementsByName resultat différent sous Ie et Firefox
    Par garfield657 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 21/08/2006, 16h25
  2. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  3. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45
  4. Je ne peux établir une connexion cliente sous Linux.
    Par Anonymous dans le forum CORBA
    Réponses: 5
    Dernier message: 16/04/2002, 15h57
  5. Réponses: 4
    Dernier message: 27/03/2002, 11h03

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