Partage
  • Partager sur Facebook
  • Partager sur Twitter

getElementID, m’envoie une erreur

Uncaught TypeError: Cannot read property 'checked' of null

Sujet résolu
    20 juin 2018 à 12:48:17

    Bonjour,

    Actuellement la tête dans le guidon pour finir ce satané projet au plus vite je me heurte à un souci pour lequel je ne trouve pas la cause, enfin si je pense savoir d'où cela vient mais je ne sais pas comment résoudre ce problème !

    Dans mon code je créé des élements de ce type : 

    var node = document.createElement('div');
                    node.innerHTML = '<input type="checkbox" id="year' + i + '" onclick="scanCheckboxes();" name="year' + i + '"><label for="year' + i + '">' + years[i] + '</label>';
                    document.getElementById('yearsContainer').appendChild(node);

    Lorsque je coche la case de ma checkbox, je pars dans ma fonction scanCheckboxes()

    dans lequel je déclare ma variable puis je tente de la manipuler

     var checkBoxYears = document.getElementById("year" + yearsIdNum);
    
    while (i != Globyears.lenght) {
                if (checkBoxYears.checked == true) {
                    lenghtYearsChecked++;
                    j++;
                }

    Ici j'ai droit à cette erreur : "Uncaught TypeError: Cannot read property 'checked' of null" ligne 230 qui correspond à cette partie "if (checkBoxYears.checked == true) {" qui est donc lié à celle-ci "document.getElementById("year" + yearsIdNum);"

    J'ai lu sur le net que ce problème est dù au fait que le code soit écrit en début de <body> ou dans le <header>, dans mon cas il est à la fin juste au dessus de </body>

    Auriez vous une idée ?

    Merci d'avance :) !!

    -
    Edité par Crabi 20 juin 2018 à 13:01:29

    • Partager sur Facebook
    • Partager sur Twitter
      20 juin 2018 à 12:53:02

      Bonjour,

      Je dirai tout simplement parceque ce n'est pas la même variable :) checkBoxYears != checkBoxDefinition

      -
      Edité par FuFurulas 20 juin 2018 à 12:53:23

      • Partager sur Facebook
      • Partager sur Twitter
        20 juin 2018 à 12:57:14

        Ah désolé je me suis planté de ligne, j'en ai créé plusieurs, j'édit mon post xD
        • Partager sur Facebook
        • Partager sur Twitter
          20 juin 2018 à 14:20:48

          Je vois pas de problème dans le code à part i != j  et Globyears.length .

          Tu peux poster un peu plus de code. notament pour voir la valeur de yearsIdnum

          • Partager sur Facebook
          • Partager sur Twitter
            20 juin 2018 à 19:09:03

            Bonjour Crabi,

            Cite :

             J'ai lu sur le net que ce problème est dù au fait que le code soit écrit en début de <body> ou dans le <header>, dans mon cas il est à la fin juste au dessus de </body>

            Dans ton cas je ne pense pas que cela soit le cas ton deuxieme code est dans une fonction scanCheckboxes déclenché par un clique sur le checkbox, mais pour en être sur tu peux attendre un peu histoire que tu sois sûr que ta page soit chargé et retester

            Est-ce que checkBoxYears est checkbox qui vient d'être cliqué?

            Si c'est le cas alors :

            ....
             onclick="scanCheckboxes(this);"
             .... function scanCheckboxes(obj){ var checkBoxYears = obj}


            Voir un this seulement à tester

            ....
             onclick="scanCheckboxes();"
            .... function scanCheckboxes(){ var checkBoxYears = this}


            sinon yearsIdNum correspond à quoi ?

            -
            Edité par AliasDmc 20 juin 2018 à 19:10:42

            • Partager sur Facebook
            • Partager sur Twitter
            Découvrez les Css avec la zonecss.fr
              21 juin 2018 à 10:44:46

              Bonjour et merci de m'accorder un peu de votre temps :)

              FuFurulas a écrit:

              Je vois pas de problème dans le code à part i != j  et Globyears.length .

              Tu peux poster un peu plus de code. notament pour voir la valeur de yearsIdnum


              Tu m'a bien aidé effectivement la valeur de yearsIdnum n'etait pas bien défini, elle etait égale à 0 et n'etait pas incrémenté dans ma boucle alors qu'elle aurait du être égale 1 (pour plus de précision yearsIdNum correspond à un compteur qui me permet de me balader dans mes balise input de type checkbox avec un id="years"+yearsIdnum) Ca ma bien viré l’erreur citée plus haut, malheureusement j'en ai désormais une autre !

               AliasDmc a écrit:

              Bonjour Crabi,

              Cite :

               J'ai lu sur le net que ce problème est dù au fait que le code soit écrit en début de <body> ou dans le <header>, dans mon cas il est à la fin juste au dessus de </body>

              Dans ton cas je ne pense pas que cela soit le cas ton deuxieme code est dans une fonction scanCheckboxes déclenché par un clique sur le checkbox, mais pour en être sur tu peux attendre un peu histoire que tu sois sûr que ta page soit chargé et retester

              Est-ce que checkBoxYears est checkbox qui vient d'être cliqué?

              Si c'est le cas alors :

              ....
               onclick="scanCheckboxes(this);"
               .... function scanCheckboxes(obj){ var checkBoxYears = obj}


              Voir un this seulement à tester

              ....
               onclick="scanCheckboxes();"
              .... function scanCheckboxes(){ var checkBoxYears = this}


              sinon yearsIdNum correspond à quoi ?

              -
              Edité par AliasDmc il y a environ 14 heures

              Hello merci de ton aide :), ce problème-ci est résolu du coup comme dit plus haut ca venait de ma fameuse variable yearsIdNum. 

              J'ai dû taper un sacré pavé avant de pouvoir faire des tests donc je risque d'avoir un sacré paquet d'erreurs, j'espère que vous serez courageux xD ou que d'autre personnes voudront bien donner un coup de main je veux forcer personne hein :p 

              Pour le moment je vais tenter de me débrouiller tout seul, je re-posterais sur ce sujet si ca ne dérange pas et donnerais plus d'informations sur mon projet si c'est nécessaire. En tout cas encore merci à vous !

              • Partager sur Facebook
              • Partager sur Twitter

              getElementID, m’envoie une erreur

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown