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 :

js marche avec IE6 pas avec les autres


Sujet :

JavaScript

  1. #1
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Points : 638
    Points
    638
    Par défaut js marche avec IE6 pas avec les autres
    j'ai une application PHP qui intègre du js et qui fonctionne bien sous IE6 mais moins bien sur FF ou google chrome

    en particulier, j'ai l'impression que l'instruction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementById("checkbox_"+i).checked == true)
    n'est pas comprise par ces navigateurs

    est-il possible qu'une déclaration préalable soit facultative en IE mais obligatoire avec les autres navigateurs

  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
    Il y a encore des gens qui utilisent IE6

    La raison la plus probable (vu l'absence de code permettant de se faire une idée), c'est que l'élément que tu cibles ne possède pas l'id "checkbox_"+i mais que ce soit son name.
    Or, pour autant que les mots aient un sens, getElementById signifie bien "récupérer un élément en fonction de son id".

  3. #3
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Points : 638
    Points
    638
    Par défaut
    j'avais essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementByName("checkbox_"+i).checked == true)
    Mais cela n'a rien donné. A moins que la syntaxe soit # pour name

  4. #4
    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
    Oui, mais là, c'est juste parce que getElementByName() n'existe pas !

    C'est getElementsByName() qu'il faut utiliser, en faisant attention que comme le "s" l'indique, cette méthode renvoie une collection (même si elle ne contient qu'un seul élément) et non un élément : il faut donc faire une boucle pour traiter les résultats.

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    si t'as tout bon sur les conseils de Bovino, essaie 0 et 1 (?)

  6. #6
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Points : 638
    Points
    638
    Par défaut
    cela progresse avec getElementsByName()

    sauf que, que les cases soient cochées ou non cochées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementsByName("checkbox_"+i).checked == true)
    condition jamais remplie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementsByName("checkbox_"+i).checked == false)
    condition jamais remplie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementsByName("checkbox_"+i).checked == 0)
    condition jamais remplie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementsByName("checkbox_"+i).checked == 1)
    condition jamais remplie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementsByName("checkbox_"+i).checked != 0)
    condition toujours remplie

  7. #7
    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 Bovino Voir le message
    en faisant attention que comme le "s" l'indique, cette méthode renvoie une collection (même si elle ne contient qu'un seul élément) et non un élément : il faut donc faire une boucle pour traiter les résultats.

  8. #8
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Points : 638
    Points
    638
    Par défaut
    je crois avoir trouvé la solution

    en amont du js, j'ai fait la modif suivante dans le php pour être cohérent avec js


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //echo  'name="checkbox_'.$i.'" ';
      echo    'id="checkbox_'.$i.'" ';
    Il semble que IE6 très permissif, remplace l'un par l'autre, alors que les autres navigateurs, tel FF sont plus stricts et font planter le js


    merci de m'avoir mis sur la bonne piste

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/06/2016, 20h36
  2. [Prototype] element.update ne marche pas avec IE6 si le contenu contient <li>
    Par ilalaina dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 23/10/2009, 08h48
  3. mon menu ne marche pas avec IE6
    Par gaya102 dans le forum Général JavaScript
    Réponses: 33
    Dernier message: 21/04/2009, 16h01
  4. Réponses: 2
    Dernier message: 12/03/2009, 13h29
  5. [xhtml][css] bouton du form ne marche pas avec IE6
    Par chinouk dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 14/06/2005, 14h00

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