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 :

Erreur IE6 className a la valeur null ou n'est pas un objet


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 50
    Points : 35
    Points
    35
    Par défaut Erreur IE6 className a la valeur null ou n'est pas un objet
    Bonjour,

    J'utilise une fonction pour desactiver des input a partir de le class et j'ai une erreur que sur IE6 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function showhide(divid, state)
    {
    var a = document.getElementsByTagName('input');
       for (var i=0; a.length; i++) {
          if(a[i].className == 'inputpari') {
             a[i].disabled=true;
    		 document.getElementById(divid).style.display=state
          }
       }
    }
    Merci de m'aider

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    il eut été plus simple d'avoir le html du ou des div et inputs concernés ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    IE6 n'utilise (malheureusement) pas "className" mais "class" pour les classes css...

    Essaie ça (pas sûr de mon coup à 100% et pas le temps de tester mais c'est une piste pour éviter ce mot-clef ^^) :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function showhide(divid, state)
    {
    var a = document.getElementsByTagName('input');
       for (var i=0; a.length; i++) {
          var attr = a[i].getAttribute("className") || a[i].getAttribute("class");
          if(attr == 'inputpari') {
             a[i].disabled=true;
    		 document.getElementById(divid).style.display=state
          }
       }
    }

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  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 : 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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (var i=0; a.length; i++)
    Essaye surtout de donner une vraie limite à ta boucle... Pour info, a.length, en terme booléen est soit toujours vrai soit toujours faux selon que a possède ou non la propriété length, donc soit tu ne rentres jamais dans la boucle, soit (ce qui semble être ton cas) tu rentres dans une boucle infinie, donc a un moment, a[i] n'existe plus !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (var i=0; i<a.length; i++)
    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

  5. #5
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Citation Envoyé par RomainVALERI Voir le message
    IE6 n'utilise (malheureusement) pas "className" mais "class" pour les classes css...
    depuis quand ? j'ai toujours utilisé className et mes clients utilisent IE6 (bon, yan a un qui se décide à passer à IE7... FF et autres ils connaissent pas). j'ai jamais eu de problème.

    className = javascript
    class = attribut de balise html

  6. #6
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (var i=0; a.length; i++)
    Essaye surtout de donner une vraie limite à ta boucle...
    Oh my...
    *pas vu ça alors que c'était énorme*

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  7. #7
    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
    il n'est pas normal de demander
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById(divid).style.display=state
    dans une boucle (au carré);

  8. #8
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par bigboomshakala Voir le message
    depuis quand ? j'ai toujours utilisé className et mes clients utilisent IE6 (bon, yan a un qui se décide à passer à IE7... FF et autres ils connaissent pas). j'ai jamais eu de problème.

    className = javascript
    class = attribut de balise html
    Oui, tu dois avoir raison, je dois faire une confusion... mais il y a bien un souci avec ce mot réservé en js de toutes façons... ^^

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  9. #9
    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 RomainVALERI Voir le message
    Oui, tu dois avoir raison, je dois faire une confusion... mais il y a bien un souci avec ce mot réservé en js de toutes façons... ^^
    Oui, car une partie des mots réservés correspondent à des instruction susceptibles d'apparaitre dans les évolutions du langage.
    C'est pour cela qu'il faut utiliser className pour désigner la classe au sens HTML et cssFloat pour désigner le float CSS.
    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

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function showhide(divid, state)
    {
    var a = document.getElementsByTagName('input');
       for (var i=0; i<a.length; i++) {
          var attr = a[i].getAttribute("className") || a[i].getAttribute("class");
          if(attr == 'inputpari') {
             a[i].disabled=true;
    		 document.getElementById(divid).style.display=state
          }
       }
    }
    Ceci fonctionne impeccable un grand merci à vous tous.

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

Discussions similaires

  1. Erreur de script : "style a la valeur null ou n'est pas un objet"
    Par Renzokuken dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/12/2009, 14h32
  2. [POO] erreur IE : valeur Null ou n'est pas un objet
    Par An0nyme dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 25/03/2009, 15h40
  3. Erreur sous IE : 'form' a la valeur Null ou n'est pas un objet
    Par Esil2008 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 30/04/2008, 16h39
  4. [DOM] Erreur JS (valeur null ou n'est pas un objet)
    Par jibeji dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 10/02/2008, 15h42

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