INTERLOCUTEUR 1: Maintenant dans ce dernier exemple, rappelons que nous entrecoupées certains Le code JavaScript à l'intérieur de mon HTML, plus précisément, à l'intérieur de la valeur de l'attribut appelé sur Envoyer pour que des balises de formulaire. Maintenant pour les petites pages, ce n'est pas une grosse affaire. Mais en tant que page web devient plus long et plus complexe, mettant simplement votre Le code JavaScript ici et là à l'intérieur de la valeur des attributs n'est pas l' meilleure conception. Idéal si l'on tient compte que, sur et au moins mettre à l'intérieur de la balise script central. Comment faire cela? Eh bien, revenons à ma balise de formulaire et d'abord supprimer cet attribut et sa valeur tout à fait. Alors ici, plutôt que de définir une fonction appelée Greet, nous allons traîner sur à la ligne de code qui finalement nous sera encore envie de signer et de le remplacer la fonction Greet comme suit. Document.get élément par ID citer démo unquote - où démonstration, le rappel, est l'unique, identificateur de la forme elle-même - point sur soumettre, qui rappellent le nom du gestionnaire d'événement dans laquelle nous sommes intéressés. Et nous allons assigner que sur soumettre gestionnaire la valeur qui est en fait une lui-même fonctionner. Maintenant m'aperçois que je ne suis pas réellement appel d'une fonction ici. Je place la définition d'un anonyme, autrement connu en tant que fonction de lambda, en spécifiant entre ces accolades un tas de code qui devrait être réellement exécuté. Plus précisément, le code que je voudrais à exécuter est que la ligne que j'avais avant, et puis nous allons ajouter à ce return false afin que ce formulaire n'est pas finalement soumis à la fin web à distance serveur de la manière traditionnelle. Voyons maintenant enregistrer ce fichier, ouvrez-le dans un navigateur, et voir ce qui se passe. http://localhost/dom-1.html. Tapons maintenant en mon nom, David, Terminer. Et rien ne semble s'être produit sauf l'URL de ma page semble ont changé, comme si la forme était effectivement soumis au même fichier. Maintenant, pourquoi cela pourrait-il être? Eh bien j'ai besoin de plus d'informations. Donc, nous allons aller de l'avant et d'ouvrir Chrome Outils de développement pour que je puisse effectivement regarder à la fenêtre de la console pour voir si j'ai fait quelque chose de mal. Je peux accéder à ce via deux façons. Dont l'un est via ce menu ici, puis, sous Outils, puis vers le bas pour Outils de développement. Et remarquez ici dans l'onglet Console, il ya une erreur de type non interceptée, ne peut pas définir la propriété sur soumettre null. Maintenant, pourquoi cela pourrait-il être? Eh bien dans mon code source ici, un avis que sur Valider Je pense que c'est une propriété de l'élément dont identificateur unique est démo. Un élément, encore une fois, est tout un noeud dans un arbre. Il semble donc que mon navigateur n'est pas penser que cet élément ou nœud existe encore. Et en effet, il ne fait pas. Rappelons qu'une page Web est analysé ou lire par un navigateur Web, de haut en bas, de gauche à droite. Et lorsque le code JavaScript est rencontré, généralement, il est exécuté tout de suite. Mais dans ce cas, nous n'avons pas encore obtenu encore à la partie de la liberté, de la HTML, dans laquelle cette forme avec un unique démonstration d'identification a été déclarée. Et si nous essayons d'exécuter mon Le code JavaScript avant ce nœud même existe dans l'arbre qui, bien sûr, est problématique car alors, sûrement, l'élément lui-même sera nulle à ce moment-là. Alors, comment résoudre ce problème? Eh bien, nous avons quelques solutions. Mais essayons le plus simple en déplaçant ma balise script de la tête marquer à mon corps, mais plus particulièrement, vers le bas du corps de ma page afin qu'il est au-dessous des noeuds et des questions. Plus précisément, nous allons mettre en évidence et coupé la balise d'ouverture et près tag pour le script et déménager que tout bloc de code à la fin du fichier ici. Maintenant, ce n'est pas nécessairement le plus propre concevoir, mais au moins il sera respecter le bon ordre des opérations. Sauvons le fichier et recharger dans mon navigateur. Disons recharger la page, ré-entrer mon nom, et là, Bonjour David est de retour.