1 00:00:00,000 --> 00:00:00,380 2 00:00:00,380 --> 00:00:03,000 >> SPEAKER 1: Teraz v tomto poslednom príklade, Pripomínam, že sme sa striedajú niektoré 3 00:00:03,000 --> 00:00:07,170 JavaScript kód vnútri môjho HTML, konkrétne, vnútri hodnoty 4 00:00:07,170 --> 00:00:10,460 atribút s názvom On Odoslať pre tento tag formulára. 5 00:00:10,460 --> 00:00:12,850 Teraz pre malé strany, to nie je tak veľký problém. 6 00:00:12,850 --> 00:00:15,950 Ale ako webové stránky dostane dlhší a viac komplexné, jednoducho uvedenie svojho 7 00:00:15,950 --> 00:00:19,660 JavaScript kód sem a tam vo vnútri z hodnoty atribútov nie je 8 00:00:19,660 --> 00:00:20,830 Najlepší dizajn. 9 00:00:20,830 --> 00:00:23,440 Najlepšie, keby sme faktor, ktorý, a aspoň dať dovnútra 10 00:00:23,440 --> 00:00:25,200 tag script centrálne. 11 00:00:25,200 --> 00:00:26,080 >> Ako to urobiť? 12 00:00:26,080 --> 00:00:30,040 No poďme sa vrátiť k môjmu tagu form a najprv odstrániť tento atribút a jeho 13 00:00:30,040 --> 00:00:31,780 cenia úplne. 14 00:00:31,780 --> 00:00:35,730 Potom tu, skôr než definovať funkcie tzv Greet, poďme visieť na 15 00:00:35,730 --> 00:00:39,405 na riadok kódu, ktorý nakoniec sme bude stále chcieť spustiť a nahradiť 16 00:00:39,405 --> 00:00:41,560 funkcie Greet nasledovne. 17 00:00:41,560 --> 00:00:48,190 Document.get prvku ID citovať koniec citátu demo - 18 00:00:48,190 --> 00:00:52,410 kde demo, odvolanie, je jedinečný Identifikátor pre samotný formulár - 19 00:00:52,410 --> 00:00:56,600 bodka na odoslať, ktoré pripomínajú je názov z obslužnej rutiny udalosti, v ktorom 20 00:00:56,600 --> 00:00:57,710 máme záujem. 21 00:00:57,710 --> 00:01:01,990 A poďme priradiť, že na predloženie psovoda hodnota, ktorá je v skutočnosti 22 00:01:01,990 --> 00:01:03,740 pracovať sám. 23 00:01:03,740 --> 00:01:06,390 >> Teraz si všimnúť, že nie som v skutočnosti volanie funkcie tady. 24 00:01:06,390 --> 00:01:10,650 Ja namiesto toho definuje anonymné, inak známy ako funkcia lambda, 25 00:01:10,650 --> 00:01:14,100 určením medzi týmito zložených zátvoriek banda kód, ktorý by mal 26 00:01:14,100 --> 00:01:15,490 skutočne vykonaný. 27 00:01:15,490 --> 00:01:18,500 Konkrétne sa jedná o kód, ktorý by som rád vykonávať je, že línia, ktorá som mal 28 00:01:18,500 --> 00:01:23,370 pred, a potom dodajme k tomu return false tak, že táto forma nie je 29 00:01:23,370 --> 00:01:26,950 nakoniec predložený do konca vzdialený web server v tradičným spôsobom. 30 00:01:26,950 --> 00:01:30,345 >> Poďme sa teraz tento súbor uložiť, otvoriť ho v prehliadači, a uvidíme, čo sa stane. 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 Poďme sa teraz zadajte svoje meno, David, Odoslať. 34 00:01:43,060 --> 00:01:46,900 A zdá sa, nič sa nestalo okrem URL mojej stránky Zdá sa, že 35 00:01:46,900 --> 00:01:52,580 sa zmenili, ako by bola forma vlastne predložený do rovnakého súboru. 36 00:01:52,580 --> 00:01:53,870 >> A teraz, prečo by to mohlo byť? 37 00:01:53,870 --> 00:01:55,340 No ja potrebovať viac informácií. 38 00:01:55,340 --> 00:01:58,700 Tak poďme do toho a otvoriť Chrome je Nástroje pre vývojárov, takže môžem skutočne 39 00:01:58,700 --> 00:02:01,440 pozrite sa na konzolovom okne vidieť či som urobil niečo zle. 40 00:02:01,440 --> 00:02:03,330 Môžem pristupovať, že cez niekoľko spôsobov. 41 00:02:03,330 --> 00:02:07,250 Jedným z nich je prostredníctvom tejto ponuky tu, potom v menu Nástroje, potom dole na 42 00:02:07,250 --> 00:02:08,509 Nástroje pre vývojárov. 43 00:02:08,509 --> 00:02:12,890 >> A všimnite si tu v záložke Console, tam je nezachytené chyby typu, nemôže 44 00:02:12,890 --> 00:02:15,390 nastavte vlastnosť na odoslať null. 45 00:02:15,390 --> 00:02:16,900 A teraz, prečo by to mohlo byť? 46 00:02:16,900 --> 00:02:21,380 No späť do zdrojového kódu tu, oznámenia že na submit Myslím, že je 47 00:02:21,380 --> 00:02:25,360 vlastnosť prvku, ktorého jedinečný identifikátor je demo. 48 00:02:25,360 --> 00:02:27,810 Prvok, je opäť len uzol v strome. 49 00:02:27,810 --> 00:02:30,870 >> Takže sa zdá, že môj prehliadač nie je myslím, že tento prvok 50 00:02:30,870 --> 00:02:32,500 alebo uzol existuje ešte. 51 00:02:32,500 --> 00:02:33,790 A skutočne, to nie je. 52 00:02:33,790 --> 00:02:37,690 Pripomeňme, že webová stránka je analyzovaný alebo čítať o webovom prehliadači, zhora nadol, 53 00:02:37,690 --> 00:02:38,430 zľava doprava. 54 00:02:38,430 --> 00:02:41,810 A tak, keď kód JavaScript je stretol, typicky je to popravený 55 00:02:41,810 --> 00:02:42,700 hneď. 56 00:02:42,700 --> 00:02:46,460 >> Ale v tomto prípade sme sa ani nedostal ešte k časti dom, 57 00:02:46,460 --> 00:02:51,100 HTML, v ktorej formulár s jedinečným Identifikátor demo bol vyhlásený. 58 00:02:51,100 --> 00:02:54,320 A tak sa snažíme vykonať my JavaScript kód pred týmto uzlom aj 59 00:02:54,320 --> 00:02:58,530 existuje v strome, ktorý, samozrejme, je problematické, pretože potom, iste, 60 00:02:58,530 --> 00:03:01,390 prvok sám o sebe bude mať hodnotu null v tomto okamihu. 61 00:03:01,390 --> 00:03:02,390 >> Tak ako to opraviť? 62 00:03:02,390 --> 00:03:03,810 No máme niekoľko riešení. 63 00:03:03,810 --> 00:03:07,200 Ale skúsme najjednoduchšie premiestnením môj skript tag z hlavy 64 00:03:07,200 --> 00:03:11,560 označiť k môjmu telu, ale konkrétne, k spodnú časť tela mojej stránky tak, 65 00:03:11,560 --> 00:03:14,170 , Že je to iba v uzloch a otázky. 66 00:03:14,170 --> 00:03:19,930 Konkrétne, poďme označte a znížiť open tag a zavrieť tag pre tento scenár 67 00:03:19,930 --> 00:03:24,720 a premiestniť, že celý blok kódu na koniec súboru tu. 68 00:03:24,720 --> 00:03:27,690 >> Teraz to nie je nevyhnutne najčistejšie navrhnúť, ale aspoň to bude 69 00:03:27,690 --> 00:03:29,530 vynútiť správne poradie operácií. 70 00:03:29,530 --> 00:03:31,495 Poďme súbor uložte a znovu vo svojom prehliadači. 71 00:03:31,495 --> 00:03:34,620 72 00:03:34,620 --> 00:03:40,240 Poďme znova načítať stránku, re-vstup moje meno, a tam, Hello David je späť. 73 00:03:40,240 --> 00:03:42,784