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 :

Interpretation checkbox 'undefined' sous Firefox (fonctionne sous IE)


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Points : 243
    Points
    243
    Par défaut Interpretation checkbox 'undefined' sous Firefox (fonctionne sous IE)
    Bonjour à vous,
    Voilà, j'ai un petit souci avec la compatibilité entre IE et FF.
    En effet, on crée une série de checkbox ayant tous le même ID. Le but étant de récupérer les valeurs des checkbox.

    La création se fait comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" id="checkbox" value=' + TabAbonnements[i].Id + ' checked onclick="javascript:uncheckAbo(' + TabAbonnements[i].Id + ' )" />
    L'accés aux données comme cela :
    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
     
    if (window.ABO_Documents.checkbox[i]!=undefined)//try{
     
    	if (window.ABO_Documents.checkbox[i].checked==true){
     
    	      if (bFirst==true) {
    	      newAbo = window.ABO_Documents.checkbox[i].value;
    	      newAbo += ",";
    		         if(window.ABO_Documents.mail[i].checked == true)		         newAbo += 'o';
    		         else
    		         newAbo += 'n';
    	      newAbo += newAboMail;
    	      bFirst=false;
    	 }
     
                       else {
    	      newAbo = newAbo + "/" + window.ABO_Documents.checkbox[i].value;
    	      newAbo += ",";
    	             if(window.ABO_Documents.mail[i].checked == true)
    		newAbo += 'o';
    		else
    		newAbo += 'n';
    	      newAbo += newAboMail;
    	      }
    	}
    }
    else alert('window.ABO_Documents.checkbox[' + i +']'); //catch(err){}

    Le souci vient de la première ligne. en effet au départ, j'avais mis un try catch qui fonctionnait sous IE, donc pas de souci mais par contre cela bloquait sur firefox.
    Après j'ai donc tenter :
    if (window.ABO_Documents.checkbox[i]!=undefined)// remplace le try

    En fait, FF n'a pas l'air d'éxécuter le test pour savoir si il s'agit d'une undefined. et donc a chaque contrôle il plante...

    Il faudrait donc une solution alternative au try catch, ou bien une autre manière de tester la 'definition' d'une CB.

    Quelques test que j'ai fait:
    - faire des ID uniques pour chaque checkbox. et tenter d'y accéder par getElementbyID mais cela ne fonctonnait ni sur IE ni sur FF.

    A savoir: la checkbox est affichée dans une IFrame et sa récupération se fait dans une IFrame différente de traitement. (la frame 'parent')

    Merci d'avance et bonne journée,

    Benjamin

  2. #2
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    J'ai fais la même bourde que toi il n'y a pas si longtemps.

    On ne dois pas utiliser le même id pour des elements même s'ils sont de même type.

    Mets id=$id là ça devrait fonctionné.

    A+
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  3. #3
    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
    Bonjour,
    Citation Envoyé par riete Voir le message
    On ne dois pas utiliser le même id pour des elements même s'ils sont de même type.
    avec le name, par contre, pas de problème

    A+
    Pour tout savoir sur l'utilisation du forum

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

  4. #4
    Membre actif Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Points : 243
    Points
    243
    Par défaut
    Merci beaucoup à vous deux,
    Que veux tu dire par $id?
    j'ai essayé de faire avec des id différents mais cela nous oblige a utiliser getElementbyId qui ne fonctionne pas en combinaison avec IFRAME....

    Merci encore,

    Benjamin

  5. #5
    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 jamesleouf Voir le message
    j'ai essayé de faire avec des id différents mais cela nous oblige a utiliser getElementbyId qui ne fonctionne pas en combinaison avec IFRAME....


    Je pense qu'il y a confusion : aucun problème de compatibilité entre iframe et getElementById() (heureusement !!).

    Tu as essayé avec un name commun ?

    A+
    Pour tout savoir sur l'utilisation du forum

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

  6. #6
    Membre actif Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Points : 243
    Points
    243
    Par défaut
    merci beaucoup, je vais essayé ça demain, car là je dois faire autre chose.
    C'est étonnant, car j'ai essayé avec les id différents.

    Lorsque j'essayais d'accéder aux checkboxs via un window.frames.MONIFRAME.document.getElementById("Checkbox_"+i), IE me retournait une erreur et n'y accédait pas. Firefox restait tout simplement silencieux.

    Je vais essayé de remplacer les GetElementById par des GetElementByName.

    Merci encore pour tous ces conseils.

    Je vous tiens au courant demain.

    Benjamin

  7. #7
    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 : 53
    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
    Citation Envoyé par jamesleouf Voir le message
    Je vais essayé de remplacer les GetElementById par des GetElementByName.
    Attention :
    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

  8. #8
    Membre actif Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Points : 243
    Points
    243
    Par défaut
    Bonjour à tous,

    Cela fonctionne bien avec getelementsbyName sous IE et sur FF.
    Merci beaucoup!!

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

Discussions similaires

  1. Une Action fonctionne sous FireFox, mais pas sur IE6/7
    Par 19cmos83 dans le forum Struts 1
    Réponses: 1
    Dernier message: 29/10/2008, 19h45
  2. [MySQL] Lien fonctionne sous Firefox mais pas sous IE
    Par Nicos77 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/01/2008, 10h29
  3. pb masquer ligne d'un tableau sous IE (fonctionne sous firefox)
    Par nocoment dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/04/2007, 16h37
  4. Fonctionne sous Firefox mais pas sous IE.
    Par ploxien dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/03/2007, 11h50
  5. fonction javascript fonctionnant sous firefox mais pas sous IE
    Par calitom dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/03/2007, 12h56

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