1 00:00:00,000 --> 00:00:00,380 2 00:00:00,380 --> 00:00:03,000 >> INTERLOCUTEUR 1: Maintenant dans ce dernier exemple, rappelons que nous entrecoupées certains 3 00:00:03,000 --> 00:00:07,170 Le code JavaScript à l'intérieur de mon HTML, plus précisément, à l'intérieur de la valeur de 4 00:00:07,170 --> 00:00:10,460 l'attribut appelé sur Envoyer pour que des balises de formulaire. 5 00:00:10,460 --> 00:00:12,850 Maintenant pour les petites pages, ce n'est pas une grosse affaire. 6 00:00:12,850 --> 00:00:15,950 Mais en tant que page web devient plus long et plus complexe, mettant simplement votre 7 00:00:15,950 --> 00:00:19,660 Le code JavaScript ici et là à l'intérieur de la valeur des attributs n'est pas l' 8 00:00:19,660 --> 00:00:20,830 meilleure conception. 9 00:00:20,830 --> 00:00:23,440 Idéal si l'on tient compte que, sur et au moins mettre à l'intérieur de 10 00:00:23,440 --> 00:00:25,200 la balise script central. 11 00:00:25,200 --> 00:00:26,080 >> Comment faire cela? 12 00:00:26,080 --> 00:00:30,040 Eh bien, revenons à ma balise de formulaire et d'abord supprimer cet attribut et sa 13 00:00:30,040 --> 00:00:31,780 valeur tout à fait. 14 00:00:31,780 --> 00:00:35,730 Alors ici, plutôt que de définir une fonction appelée Greet, nous allons traîner sur 15 00:00:35,730 --> 00:00:39,405 à la ligne de code qui finalement nous sera encore envie de signer et de le remplacer 16 00:00:39,405 --> 00:00:41,560 la fonction Greet comme suit. 17 00:00:41,560 --> 00:00:48,190 Document.get élément par ID citer démo unquote - 18 00:00:48,190 --> 00:00:52,410 où démonstration, le rappel, est l'unique, identificateur de la forme elle-même - 19 00:00:52,410 --> 00:00:56,600 point sur soumettre, qui rappellent le nom du gestionnaire d'événement dans laquelle 20 00:00:56,600 --> 00:00:57,710 nous sommes intéressés. 21 00:00:57,710 --> 00:01:01,990 Et nous allons assigner que sur soumettre gestionnaire la valeur qui est en fait une 22 00:01:01,990 --> 00:01:03,740 lui-même fonctionner. 23 00:01:03,740 --> 00:01:06,390 >> Maintenant m'aperçois que je ne suis pas réellement appel d'une fonction ici. 24 00:01:06,390 --> 00:01:10,650 Je place la définition d'un anonyme, autrement connu en tant que fonction de lambda, 25 00:01:10,650 --> 00:01:14,100 en spécifiant entre ces accolades un tas de code qui devrait 26 00:01:14,100 --> 00:01:15,490 être réellement exécuté. 27 00:01:15,490 --> 00:01:18,500 Plus précisément, le code que je voudrais à exécuter est que la ligne que j'avais 28 00:01:18,500 --> 00:01:23,370 avant, et puis nous allons ajouter à ce return false afin que ce formulaire n'est pas 29 00:01:23,370 --> 00:01:26,950 finalement soumis à la fin web à distance serveur de la manière traditionnelle. 30 00:01:26,950 --> 00:01:30,345 >> Voyons maintenant enregistrer ce fichier, ouvrez-le dans un navigateur, et voir ce qui se passe. 31 00:01:30,345 --> 00:01:33,050 32 00:01:33,050 --> 00:01:39,800 http://localhost/dom-1.html. 33 00:01:39,800 --> 00:01:43,060 Tapons maintenant en mon nom, David, Terminer. 34 00:01:43,060 --> 00:01:46,900 Et rien ne semble s'être produit sauf l'URL de ma page semble 35 00:01:46,900 --> 00:01:52,580 ont changé, comme si la forme était effectivement soumis au même fichier. 36 00:01:52,580 --> 00:01:53,870 >> Maintenant, pourquoi cela pourrait-il être? 37 00:01:53,870 --> 00:01:55,340 Eh bien j'ai besoin de plus d'informations. 38 00:01:55,340 --> 00:01:58,700 Donc, nous allons aller de l'avant et d'ouvrir Chrome Outils de développement pour que je puisse effectivement 39 00:01:58,700 --> 00:02:01,440 regarder à la fenêtre de la console pour voir si j'ai fait quelque chose de mal. 40 00:02:01,440 --> 00:02:03,330 Je peux accéder à ce via deux façons. 41 00:02:03,330 --> 00:02:07,250 Dont l'un est via ce menu ici, puis, sous Outils, puis vers le bas pour 42 00:02:07,250 --> 00:02:08,509 Outils de développement. 43 00:02:08,509 --> 00:02:12,890 >> Et remarquez ici dans l'onglet Console, il ya une erreur de type non interceptée, ne peut pas 44 00:02:12,890 --> 00:02:15,390 définir la propriété sur soumettre null. 45 00:02:15,390 --> 00:02:16,900 Maintenant, pourquoi cela pourrait-il être? 46 00:02:16,900 --> 00:02:21,380 Eh bien dans mon code source ici, un avis que sur Valider Je pense que c'est une 47 00:02:21,380 --> 00:02:25,360 propriété de l'élément dont identificateur unique est démo. 48 00:02:25,360 --> 00:02:27,810 Un élément, encore une fois, est tout un noeud dans un arbre. 49 00:02:27,810 --> 00:02:30,870 >> Il semble donc que mon navigateur n'est pas penser que cet élément 50 00:02:30,870 --> 00:02:32,500 ou nœud existe encore. 51 00:02:32,500 --> 00:02:33,790 Et en effet, il ne fait pas. 52 00:02:33,790 --> 00:02:37,690 Rappelons qu'une page Web est analysé ou lire par un navigateur Web, de haut en bas, 53 00:02:37,690 --> 00:02:38,430 de gauche à droite. 54 00:02:38,430 --> 00:02:41,810 Et lorsque le code JavaScript est rencontré, généralement, il est exécuté 55 00:02:41,810 --> 00:02:42,700 tout de suite. 56 00:02:42,700 --> 00:02:46,460 >> Mais dans ce cas, nous n'avons pas encore obtenu encore à la partie de la liberté, de la 57 00:02:46,460 --> 00:02:51,100 HTML, dans laquelle cette forme avec un unique démonstration d'identification a été déclarée. 58 00:02:51,100 --> 00:02:54,320 Et si nous essayons d'exécuter mon Le code JavaScript avant ce nœud même 59 00:02:54,320 --> 00:02:58,530 existe dans l'arbre qui, bien sûr, est problématique car alors, sûrement, 60 00:02:58,530 --> 00:03:01,390 l'élément lui-même sera nulle à ce moment-là. 61 00:03:01,390 --> 00:03:02,390 >> Alors, comment résoudre ce problème? 62 00:03:02,390 --> 00:03:03,810 Eh bien, nous avons quelques solutions. 63 00:03:03,810 --> 00:03:07,200 Mais essayons le plus simple en déplaçant ma balise script de la tête 64 00:03:07,200 --> 00:03:11,560 marquer à mon corps, mais plus particulièrement, vers le bas du corps de ma page afin 65 00:03:11,560 --> 00:03:14,170 qu'il est au-dessous des noeuds et des questions. 66 00:03:14,170 --> 00:03:19,930 Plus précisément, nous allons mettre en évidence et coupé la balise d'ouverture et près tag pour le script 67 00:03:19,930 --> 00:03:24,720 et déménager que tout bloc de code à la fin du fichier ici. 68 00:03:24,720 --> 00:03:27,690 >> Maintenant, ce n'est pas nécessairement le plus propre concevoir, mais au moins il sera 69 00:03:27,690 --> 00:03:29,530 respecter le bon ordre des opérations. 70 00:03:29,530 --> 00:03:31,495 Sauvons le fichier et recharger dans mon navigateur. 71 00:03:31,495 --> 00:03:34,620 72 00:03:34,620 --> 00:03:40,240 Disons recharger la page, ré-entrer mon nom, et là, Bonjour David est de retour. 73 00:03:40,240 --> 00:03:42,784