Przetwarzanie formularzy przy użyciu zdarzeń (Wersja Wideo)
-
0:01 - 0:06Formularz to sposób, w który strona
przesyła informacje do serwera. -
0:06 - 0:10W Khan Academy nie pozwalamy
na kontakt stron z serwerami -
0:10 - 0:14- z przyczyn bezpieczeństwa.
Nie uczymy tu formularzy. -
0:14 - 0:17Ale skoro zgłębiacie JavaScript,
by modyfikować strony, -
0:17 - 0:21pokażę, jak używać go
do przetwarzania elementów formularza. -
0:21 - 0:24Nie trzeba będzie
wysyłać ich do serwera. -
0:24 - 0:27Zrobiłam na tej stronie
kilka formularzy, -
0:27 - 0:30by poznać nazwę użytkownika
oraz język. -
0:30 - 0:34Chcę, by strona
pisała powitanie w tym języku, -
0:34 - 0:37gdy użytkownik kliknie na przycisk.
-
0:37 - 0:38Krok pierwszy:
-
0:38 - 0:42element "przycisk"
musi być przechowywany w zmiennej. -
0:42 - 0:48Napiszemy więc:
"document.getElementById("button")". -
0:50 - 0:53Następny krok - to zdefiniować
funkcję odbiornika zdarzeń: -
0:53 - 0:57"var onButtonClick = function(){",
-
0:58 - 1:00a wewnątrz
-
1:01 - 1:04zaczniemy od wiadomości.
-
1:04 - 1:09Zatem:
"document.getElementById("message")", -
1:09 - 1:12i już mamy "div".
Teraz wystarczy napisać: -
1:13 - 1:15textContent +=
-
1:16 - 1:21"Zostałem kliknięty!
Dziękuję bardzo!". -
1:21 - 1:23"Div" pełen wdzięczności!
-
1:23 - 1:25I wreszcie krok trzeci:
-
1:25 - 1:28dodamy detektor zdarzeń do przycisku,
-
1:29 - 1:32by kliknięcie przywoływało tę funkcję.
-
1:32 - 1:35Piszę więc: "("click", onButtonClick)".
-
1:37 - 1:39Zatrzymajcie odtwarzanie
i sprawdźcie sami, -
1:40 - 1:43czy to działa tak,
jak się spodziewaliście. -
1:43 - 1:47A teraz niech program
powie coś na podstawie formularza. -
1:48 - 1:50Musimy wymyślić, jak zdobyć nazwę,
-
1:50 - 1:54którą użytkownik
wpisał w odpowiednie pole. -
1:54 - 1:56Zróbmy w tym celu zmienną.
-
1:57 - 2:00Piszę: "var name ="...
-
2:00 - 2:05"document.getElementById",
-
2:05 - 2:07bo nazwa ma ID.
-
2:07 - 2:10Mamy to tutaj.
-
2:12 - 2:15Zróbmy nowy ciąg dla powitania
-
2:15 - 2:17i dołączmy nazwę.
-
2:17 - 2:21Więc: "var greeting = "Heyaz"
-
2:21 - 2:25(moje ulubione powitanie) + name".
No dobrze. -
2:25 - 2:29Mamy ciąg i to,
co jest przechowywane w zmiennej. -
2:31 - 2:34Ten ciąg tekstu
-
2:34 - 2:38to powinno być powitanie.
-
2:39 - 2:43Zobaczmy... Znaleźliśmy
pole wprowadzania imienia, -
2:43 - 2:48zrobiliśmy ciąg powitania
i połączyliśmy go z "div". -
2:48 - 2:52Zatrzymajcie odtwarzanie
i sprawdźcie, czy się udało. -
2:53 - 2:56Nie całkiem, prawda?
-
2:56 - 2:59Zobaczyliście: "Heyaz [object Object]"
-
2:59 - 3:02albo "Heyaz object Element"?
-
3:02 - 3:05Jeśli wasze imię nie brzmi "Object"
-
3:05 - 3:08(bez urazy, jeśli brzmi, ładne imię!),
-
3:08 - 3:10to znaczy, że coś jest nie tak.
-
3:11 - 3:14Spodziewaliśmy się zobaczyć
to, co wpisaliście, -
3:14 - 3:16a zamiast tego zobaczyliśmy "object".
-
3:17 - 3:21To znaczy, że nazwa "zmienna"
wskazuje na obiekt, -
3:21 - 3:24nie zaś na ciąg,
na który miała wskazywać. -
3:24 - 3:27Może już rozgryźliście ten problem.
-
3:27 - 3:31Przechowywaliśmy cały obiekt
"element" w zmiennej "name". -
3:32 - 3:35A obiekt "element" jest duży,
-
3:35 - 3:40zawiera mnóstwo informacji o elemencie:
o jego atrybutach i metodach. -
3:40 - 3:43Aby się dowiedzieć, co wpisał
użytkownik, musimy wejść -
3:43 - 3:47do szczególnej właściwości
elementu: jego wartości. -
3:47 - 3:50Wpiszę więc "value"
-
3:50 - 3:52i powinno już być w porządku.
-
3:52 - 3:56Zatrzymajcie odtwarzanie
i sprawdźcie jeszcze raz. -
3:56 - 3:58Udało się, prawda?
-
3:58 - 4:01To częsty błąd, więc bądźcie uważni.
-
4:02 - 4:05Chcę pokazać
jeszcze jedną częstą pomyłkę. -
4:05 - 4:09Zaznaczę tę linię i...
-
4:09 - 4:12i przeniosę ją poza funkcję.
-
4:14 - 4:16Teraz przerwijcie odtwarzanie,
-
4:17 - 4:20wpiszcie input i naciśnijcie przycisk.
-
4:24 - 4:26Jeśli jest tak, jak powinno,
to zobaczycie -
4:26 - 4:30pusty ciąg zamiast swojego imienia.
Wiecie, dlaczego? -
4:30 - 4:34Zastanówcie się nad tym, kiedy
wykonywany jest każdy wiersz kodu. -
4:34 - 4:36W kodzie bieżącym
-
4:36 - 4:37przeglądarka ładuje stronę
-
4:37 - 4:40i wykonuje JavaScript
wiersz po wierszu. -
4:40 - 4:43Najpierw przechowuje
element "przycisk" w zmiennej. -
4:43 - 4:47Później umieszcza w zmiennej
wartość elementu input. -
4:47 - 4:51Ale przechowuje wartość w czasie,
gdy strona się ładuje, -
4:51 - 4:52a wtedy to pusty ciąg.
-
4:53 - 4:56Następnie definiuje funkcję
i przypisuje detektor zdarzeń. -
4:57 - 4:58Gdy zostaje on przywołany,
-
4:58 - 5:03nazwa - to ten sam ciąg,
co podczas ładowania strony. -
5:03 - 5:07Detektor nie pozna ostatniej rzeczy,
którą wpisał użytkownik. -
5:07 - 5:11Dlatego ta linia kodu musi być
-
5:11 - 5:13wewnątrz tej funkcji
detektora zdarzeń. -
5:14 - 5:18Znajdzie wartość w czasie,
gdy dochodzi do zdarzenia. -
5:19 - 5:22Dodajmy kod,
żeby przyjrzeć się wartości "język". -
5:22 - 5:24Upewnimy się, że rozumiecie.
-
5:24 - 5:30W detektorze zdarzeń umieszczę
tę wartość w zmiennej "lang" (język). -
5:31 - 5:34Spójrzcie na to okropne wcięcie!
-
5:34 - 5:37Wyrównajmy te wiersze.
-
5:37 - 5:38No dobrze...
-
5:38 - 5:44"var lang = document.getElementByID"...
-
5:44 - 5:47("lang").value".
-
5:48 - 5:51Zauważcie,
że nazywam zmienne tak samo, jak ID -
5:51 - 5:55- chociaż wy nie musicie tego robić.
-
5:55 - 6:00Chcę, żeby zależnie od wybranego języka
pojawiała się inna wiadomość. -
6:00 - 6:04Zwróćcie uwagę, że wartość to nie
to samo, co w liście rozwijalnej. -
6:04 - 6:07To atrybut wartości w HTML.
-
6:07 - 6:11Zatem "lang" powinien
mieć wartość "en", "es" lub "plt". -
6:12 - 6:17Czyli: "if (lang === "es")",
-
6:18 - 6:24powinno się wyświetlić
powitanie "Hola". -
6:24 - 6:27Zróbmy tę powitalną zmienną tutaj.
-
6:27 - 6:32Wtedy "greeting" będzie mieć
postać "Hola" plus imię. -
6:35 - 6:42A jeśli wartość języka to "plt",
czyli Pig Latin (świńska łacina), -
6:42 - 6:44to powitanie będzie brzmieć
-
6:44 - 6:49"Ello-hey" plus imię.
-
6:49 - 6:53I użyjemy polecenia "else"
dla angielskiego. -
6:54 - 6:57Przeniosę to tutaj. No dobrze.
-
6:57 - 7:01A jeśli chcecie
wesołe zadanie dodatkowe, -
7:01 - 7:04spróbujcie napisać
konwerter nazw na świńską łacinę, -
7:04 - 7:08żeby przekładane było
całe powitanie, z imieniem. -
7:08 - 7:10Byłoby super!
-
7:10 - 7:13Przerwijcie odtwarzanie,
wprowadźcie imię, -
7:13 - 7:17wybierzcie inny język
i wypróbujcie program. -
7:20 - 7:21Nieźle, co?
-
7:21 - 7:25Z formularzami i odrobiną JavaScript
można robić świetne rzeczy: -
7:25 - 7:28gry słowne i liczbowe,
wymyślanie opowiastek... -
7:28 - 7:30A jeśli macie serwer
poza Khan Academy, -
7:30 - 7:33używajcie JavaScript
do przetworzenia formularza -
7:34 - 7:36przed wysłaniem go do serwera.
-
7:36 - 7:39W formularzach jest więcej zdarzeń
do nasłuchu: -
7:39 - 7:41wciskanie klawiszy i wybranie elementu.
-
7:41 - 7:44Pamiętajcie, by patrzeć
na wartość pola do wprowadzania -
7:44 - 7:48i sprawdzać ją w odpowiednim momencie.
-
7:48 - 7:52Poćwiczycie to w następnym zadaniu!
- Title:
- Przetwarzanie formularzy przy użyciu zdarzeń (Wersja Wideo)
- Description:
-
To tylko zapis naszych interaktywnych sesji poświęconych kodowaniu, stworzony by ułatwić ich przełożenie na inne języki.
Polecamy obejrzenie oryginalnej sesji na Khan Academy, gdzie możecie zatrzymać sesje, by edytować własny kod, jak również zobaczyć zapis kodu w wyższej rozdzielczości:
http://www.khanacademy.org/computer-programming - Video Language:
- English
- Duration:
- 07:54
Lech Mankiewicz edited Polish subtitles for Processing forms with events (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Processing forms with events (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Processing forms with events (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Processing forms with events (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Processing forms with events (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Processing forms with events (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Processing forms with events (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Processing forms with events (Video Version) |