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 :

IE : propriété display ou innerHTML impossible..


Sujet :

JavaScript

  1. #21
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Points : 330
    Points
    330
    Par défaut
    Curieux que ça poserait un problème de validation : Il ne s'agit que d'affichage.

    Essaie avec .visibility='show' et .visibility='hide' à la place des display.

    Vérifie que tes ids soient unique et aussi que tu n'aies pas d'erreur de syntax en amont de ton code en erreur. On ne sait jamais.

    EDIT : .visibility='visible' et .visibility='hidden'
    E.Bzz

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    donc j'ai testé 2 method :

    en passant par le getElementById...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function check_test(test) {
    	fields = document.getElementById("fields");
    	fieldsbis = document.getElementById("fieldsbis");
    	if(test == '05' || tes == '08') {
    		fields.style.display = "none";
    		fieldsbis.style.display = "table-cell";
    	} else {
    		fields.style.display = "table-cell";
    		fieldsbis.style.display = "none";
    	}
    }
    => ERREUR : Object doesn't support this property or method

    et

    en appelant directement l'element...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function check_test(test) {
    	if(test == '05' || tes == '08') {
    		fields.style.display = "none";
    		fieldsbis.style.display = "table-cell";
    	} else {
    		fields.style.display = "table-cell";
    		fieldsbis.style.display = "none";
    	}
    }
    => ERREUR : Impossible d'obtenir la propriété display. Argument non valide.

    sinon tout ça fonctionne sous FF et Chrome...

    EDIT : je viens de lire l'astuce du visible, je peux pas l'utiliser ça ne convient pas à ma page, je ne peux pas me permettre de laisser un espace vide...

  3. #23
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par kernelfailure Voir le message
    Curieux que ça poserait un problème de validation : Il ne s'agit que d'affichage.
    Il ne s'agit pas de validation mais d'interprétation par le nav ...

    Citation Envoyé par kernelfailure
    Essaie avec .visibility='show' et .visibility='hide' à la place des display.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    visibility="visible"
    // ou
    visibility = "hidden"


    Mais ça ne réglera pas le problème ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  4. #24
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    fields et fieldsbis sont déclaré où ? Ce sont des variables globales ?
    Si oui, vous mélangez global et local, pas bien.
    Sinon, déclarez les explicitement dans la fonction (même si ça ne changera rien):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function check_test(test) {
    	var fields = document.getElementById("fields");
    	var fieldsbis = document.getElementById("fieldsbis");
    	if(test == '05' || tes == '08') {
    		fields.style.display = "none";
    		fieldsbis.style.display = "table-cell";
    	} else {
    		fields.style.display = "table-cell";
    		fieldsbis.style.display = "none";
    	}
    }
    Quant au visibility à la place du display, j'y ai pensé. Mais je n'ai plus IE6 donc pas moyen de vérifier...

  5. #25
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Tes 2 derniers codes ne pouvaient pas fonctionner (ne serai-ce qu'à cause du "tes == '8'").
    Sinon, tu as essayé
    Citation Envoyé par E.Bzz Voir le message
    il vaudrait mieux ne laisser qu'un seul td, avec tes 2 <table> à l'intérieur.
    Suivant le cas, c'est ces tables contenues dans le <td> que tu masqueras ou afficheras.
    ??

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  6. #26
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    oui oui mon code est bâti comme ça maintenant... mon erreur est la même donc mais sur les elements <table> que je veux switch...

    @Vermine : le problème de la propriété visibility c'est que ça laisse un trou à l'affichage...

    @E.Bzz : erreur de transcryption vers le forum... c'est bien écrit dans mon code

  7. #27
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Darkroro Voir le message
    mon erreur est la même donc mais sur les elements <table> que je veux switch...
    Là par contre, il n'y a aucune raison !

    On peut voir (tout) le nouveau code ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #28
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Et en même temps, vérifiez ce que donne cet alert après les getElementById et avant les .style.display:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert(fields + "/" + fieldsbis);

  9. #29
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par vermine Voir le message
    Et en même temps, vérifiez ce que donne cet alert après les getElementById
    Heu ... intérêt ?

    On sait qu'ils existent, et faire des alert() d'objets ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  10. #30
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Si ils ne renvoient pas [object] tous les deux, c'est qu'on regarde au mauvais endroit et que forcément les .style.display ne fonctionneront pas.

  11. #31
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    @Darkroro:
    Citation Envoyé par E.Bzz Voir le message
    On peut voir (tout) le nouveau code ?
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  12. #32
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Comme je l'ai dit précédemment, selon la manière dont j'écris la fonction j'obtiens pas la même erreur...

  13. #33
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    J'ai viré tout le code qui pose soucis dans mes pages pour test si j'ai d'autres erreurs et rien donc j'ai tout remis.

    J'ai renommé mes fields pour qu'ils aient des noms plus cohérents (j'ai pas de doublons)

    ma fonction JS... (que j'ai testé de 2 manières précédemment citées)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function check_test(test) {
    	var fields = document.getElementById("fields");
    	var fieldsbis = document.getElementById("fieldsbis");
    	if(test == '05' || test == '08') {
    		fields.style.display = "none";
    		fieldsbis.style.display = "table";
    	} else {
    		fields.style.display = "table";
    		fieldsbis.style.display = "none";
    	}
    }
    le code HTML généré à l'endroit où y'a mes tables à switch... (j'ai rajoute là où j'appelle fonction)
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    ...
    <tr>
      <td>
        <select name="test" id="test" onchange="javascript:check_test(this.value);">
          <option value="01">option1</option>
          <option value="02">option2</option>
          <option value="03">option3</option>
          <option value="04">option4</option>
          <option value="05">option5</option>
          <option value="06">option6</option>
          <option value="07">option7</option>
          <option value="08">option8</option>
        </select>
      </td>
    </tr>
    <tr><td>
      <table id="fields" style="display:table;">
        <tr>
          <td class="texte">champ1:</td><td>&nbsp;</td>
          <td><input type="text" value="" name="champ1" id="champ1" Onclick="document.getElementById('champ1').className='class2';" Onchange="document.getElementById('champ1').className='class3';" Onblur="document.getElementById('champ1').className='class3';" size=20 class="class3"></td>
          <td>&nbsp;&nbsp;</td>
          <td class="texte">champ2:</td>
          <td>&nbsp;</td>
          <td><input type="text" value="" name="champ2" id="champ2" Onclick="document.getElementById('champ2').className='class2';" Onchange="document.getElementById('champ2').className='class3';" Onblur="document.getElementById('champ2').className='class3';" size=20 class="class3"></td>
        </tr>
      </table>
      <table id="fieldsbis" style="display:none;">
        <tr>
          <td><select class="deroulant" name="select1" id="select1">option</select></td><td>&nbsp;</td>
          <td class="texte">champ3:</td>
          <td><input type="text" value="" name="champ3" id="champ3" Onclick="document.getElementById('champ3').className='class2';" Onchange="document.getElementById('champ3').className='class3';" Onblur="document.getElementById('champ3').className='class3';" size=20 class="class3"></td>
          <td>&nbsp;</td>
          <td class="texte">champ4:</td>
          <td><input type="text" value="" name="champ4" id="champ4" Onclick="document.getElementById('champ4').className='class2';" Onchange="document.getElementById('champ4').className='class3';" Onblur="document.getElementById('champ4').className='class3';" size=20 class="class3"></td>
        </tr>
        <tr>
          <td><select class="deroulant" name="select2" id="select2">option</select></td>
          <td>&nbsp;</td>
          <td class="texte">champ5:</td>
          <td><input type="text" value="" name="champ5" id="champ5" Onclick="document.getElementById('champ5').className='class2';" Onchange="document.getElementById('champ5').className='class3';" Onblur="document.getElementById('champ5').className='class3';" size=20 class="class3"></td>
          <td>&nbsp;</td>
          <td class="texte">champ6:</td>
          <td><input type="text" value="" name="champ6" id="champ6" Onclick="document.getElementById('champ6').className='class2';" Onchange="document.getElementById('champ6').className=\'class3';" Onblur="document.getElementById('champ6').className='class3';" size=20 class="class3"></td>
        </tr>
      </table>
    </td></tr>
    ...

  14. #34
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Points : 330
    Points
    330
    Par défaut
    Et ta fonction check_test est appelée où et quand ?

  15. #35
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Un truc qui me chagrine c'est tes valeurs de display.
    C'est plutôt prévu pour le XML on dirait ...

    Ça donne quoi en utilisant que none/block/inline ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  16. #36
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Ok ça a l'air d'être bon... en tout cas le switch marche...
    J'ai remplacé toutes mes propriétés display en "" au lieu de "table"

    pfff...

  17. #37
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Citation Envoyé par Darkroro Voir le message
    EDIT : je viens de test l'astuce de vermine, ça passe pas
    Ca ne marche pas, puis ça marche.




    Mais mieux vaut utiliser "inline" ou "block" (voire les deux) que le vide, comme l'a précisé E.Bzz.

  18. #38
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par vermine Voir le message
    Mais mieux vaut utiliser "inline" ou "block"
    +1
    "block" au lieu de "" en l'occurrence

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  19. #39
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    @Vermine : j'avais dû test avec un erreur dans mon code

    Je vais testé "block" voir si ça brise pas mes callages...

    En tout cas merci pour tout !


    PS : j'ai une nouvelle erreur sous IE maintenant genre à la ligne 2230 et des banane... mais j'ai pas plus de 800 lignes dans mon code et dans le source généré... bizarre non ?

  20. #40
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Darkroro Voir le message
    PS : j'ai une nouvelle erreur sous IE maintenant genre à la ligne 2230 et des banane... mais j'ai pas plus de 800 lignes dans mon code et dans le source généré... bizarre non ?
    Ça serait pas dans un .js en include ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/12/2012, 17h04
  2. innerHTML : impossible de visualiser des objects
    Par snopims dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/04/2010, 14h42
  3. Réponses: 2
    Dernier message: 17/08/2008, 20h58
  4. ma propriété display:inline ne fonctionne pas
    Par Ekimasu dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 15/11/2007, 10h41
  5. [DOM] Modification innerHTML impossible
    Par Christophe Charron dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/05/2007, 13h37

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