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 :

TypeError: document.querySelector() is null


Sujet :

JavaScript

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 85
    Par défaut TypeError: document.querySelector() is null
    Bonjour
    je viens de tester le querySelector pour detecter un evenement sur mon champ
    je vous donne le code
    Code html : 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
    <!DOCTYPE html>
    <html lang="en">
     
    <head>
    	<meta charset="UTF-8">
    	<title>Exercice JS</title>
    	<link rel="stylesheet" href="style.css">
    	<script type="text/javascript" src="script.js"></script>
    </head>
     
    <body>
     
     
    	<form action="#" id="form">
    		<input type="text" id="cp">
    		<input type="submit" value="Envoyer">
    	</form>
    </body>
     
    </html>
    dans mon code javascript
    je fait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    document.querySelector('#form').addEventListener('submit', function(e){ 
    var cp=document.querySelector('#cp');
    if (cp.Value.length!= 5){
    	alert('le code est icorrect ');
    }
    }
    )
    sauf que dans la console ca me donne
    TypeError: document.querySelector(...) is null
    pouvez vous m'expliquer pourquoi ca ne marche pas ??

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 506
    Par défaut
    Salut,

    L'erreur signifie que le <form> n'existe pas encore pour l'attacher à un événement, parce que le script est chargé avant le html.
    Solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    document.addEventListener("DOMContentLoaded", function() {//quand le document est prêt 
          document.querySelector('#form').addEventListener('submit', function(e){ 
             var cp=document.querySelector('#cp');
               if (cp.value.length!= 5){//ici c'est value et pas Value
    	      alert('le code est icorrect ');
               }
          });
          /* si tu veux attacher d'autres événements, c'est ici que tu dois les mettre... */
    });

  3. #3
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 493
    Par défaut
    le plus simple est de deplacer l'appel a ton script juste avant la fermeture du body
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .....ton html....
    <script type="text/javascript" src="script.js"></script>
    </body>
    et si tu veux ajouter une securite, ajoute l'attribut defer a ta balise script developer.mozilla.org/fr/docs/Web/HTML/Element/script
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

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

Discussions similaires

  1. TypeError: document.getElementById() is null
    Par aliounekanoute dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/02/2019, 16h18
  2. [AJAX] document.getElementById() is null
    Par nicocooper dans le forum AJAX
    Réponses: 2
    Dernier message: 31/03/2011, 00h16
  3. document.getElementById retourne null
    Par gabdeschenes dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2009, 08h45
  4. [DOM] document.getElementById is null
    Par camyo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/06/2009, 07h24
  5. La fonction document.getElementById retourne NULL
    Par zaineb.z dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/05/2008, 18h09

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