Aplikacje WWW - laboratorium

Podobne dokumenty
Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium

Aplikacje internetowe - laboratorium

Aplikacje internetowe laboratorium JavaScript

Aplikacje internetowe laboratorium JavaScript

Zaawansowane aplikacje internetowe

Zajęcia 4 - Wprowadzenie do Javascript

Aplikacje WWW - laboratorium

Zdarzenia Zdarzenia onload i onunload

Aplikacje internetowe - laboratorium

Wykład 03 JavaScript. Michał Drabik

Podstawy JavaScript ćwiczenia

JavaScript - wykład 4. Zdarzenia i formularze. Obsługa zdarzeń. Zdarzenia. Mysz. Logiczne. Klawiatura. Beata Pańczyk

Funkcje i instrukcje języka JavaScript

Dokumentacja Skryptu Mapy ver.1.1

FORMULARZE Formularz ma formę ankiety, którą można wypełnić na stronie. Taki formularz może być np. przesłany pocztą elektroniczną .

JAVAScript w dokumentach HTML (2)

Wybrane znaczniki HTML

Szablon główny (plik guestbook.php) będzie miał postać:

LABORATORIUM 2 WSTĘP DO SIECI TELEINFORMATYCZNYCH TABELE I FORMULARZE

Celem ćwiczenia jest zapoznanie z językiem HTML i JavaScript, zasadami tworzenia stron WWW i umieszczania na nich skryptów w języku JavaScript.

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Wprowadzenie do Internetu Zajęcia 5

Aplikacje WWW - laboratorium

Zawartość specyfikacji:

TECHNOLOGIE SIECI WEB

DOM (Document Object Model)

Ćwiczenie 8. Kontrolki serwerowe

Laboratorium 7 Blog: dodawanie i edycja wpisów

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

SSK - Techniki Internetowe

Laboratorium 1 Wprowadzenie do PHP

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Przykład integracji kalkulatora mbank RATY na platformie IAI

Przykładowa integracja systemu tpay.com KIP S.A. ul. Św. Marcin 73/ Poznań.

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Zdarzenia w JavaScript (Zajęcia r.)

Aplikacje WWW - laboratorium

obecnie tabeli nie stosuje się do budowy struktury witryny (stosuje się za to pozycjonowanie elementów i warstwy) faktycznie wymagają

Rys.2.1. Drzewo modelu DOM [1]

HTML (HyperText Markup Language) hipertekstowy język znaczników

I. Dlaczego standardy kodowania mailingów są istotne?

Umieszczanie kodu. kod skryptu

Aplikacje WWW - laboratorium

Ilość cyfr liczby naturalnej

Formularze w PHP dla początkujących

1. Składanie wniosku rejestracyjnego - rejestracja konta użytkownika/firmy

plansoft.org Zmiany w Plansoft.org

Instrukcja zarządzania kontem jednostki samorządu terytorialnego w serwisie internetowym

Instrukcja rejestracji świadczeniodawcy

Na początku utworzymy formularz w czystym języku HTML i przetestujemy go za pomocą przeglądarki WWW.

JAVASCRIPT (cz. IV) ĆWICZENIA DO SAMODZIELNEGO WYKONANIA materiały dydaktyczne dla słuchaczy opracowanie: by Arkadiusz Gawełek, Łódź

Dane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia

Podstawy technologii WWW

Pozycjonowanie i poruszanie warstw

Portal Personelu Medycznego Global Services Sp. z o.o.

INSTRUKCJA Panel administracyjny

Pierwsza strona internetowa

Przykładowa integracja systemu Transferuj.pl

HTML (HyperText Markup Language)

Dokument hipertekstowy

Modele danych walidacja widoki zorientowane na model

Instrukcja zarządzania kontem przedsiębiorstwa w serwisie internetowym

Wybrane działy Informatyki Stosowanej

Aplikacje internetowe

Instrukcja poprawy wniosku

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

CZYM JEST JAVASCRIPT?

SIECI KOMPUTEROWE I BAZY DANYCH

Formularze Pobierają dane od użytkownika strony i wysyłają je do przetworzenia na serwerze (gdzie potrzebne są skrypty,któredaneprzetworzą najczęściej

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Podręcznik Użytkownika LSI WRPO

Wyszukiwanie największej spośród czterech liczb. Przykładowe rozwiązanie

Palindromy. Przykładowe rozwiązanie

INSTRUKCJA OBSŁUGI MOBILNEJ KRAKOWSKIEJ KARTY MIEJSKIEJ

1. Proszę wejść na stronę: poczta.home.pl i zalogować się do nowej skrzynki za pomocą otrzymanych danych.

Opis zmian funkcjonalności platformy E-GIODO wprowadzających możliwość podpisania wniosku bezpośrednio w oknie przeglądarki.


PWI Instrukcja użytkownika

Specyfikacja techniczna dot. mailingów HTML

Projekt strony internetowej firmy organizującej przyjęcia

Okna, ramki i ciasteczka

Instrukcja zakładania konta pocztowego na stronie www-tz.c.pl

GroupWise WebAccess Basic Interface

SPECYFIKACJA TECHNICZNA PRODUKTÓW REKLAMOWYCH SIECI LOCAL POWER. Specyfikacja ważna od 21 maja 2018 r.

Język PHP. Studium Podyplomowe Sieci Komputerowe i Aplikacje Internetowe. v1.7, 2007/11/23

Instrukcja użytkownika

Young Programmer: HTML+PHP. Dr inż. Małgorzata Janik, Zajęcia #2

WOJEWÓDZTWO PODKARPACKIE

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny

Odsyłacze. Style nagłówkowe

LeftHand Sp. z o. o.


Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

GEO-SYSTEM Sp. z o.o Warszawa, ul. Podbipięty 34 m. 7, tel./fax , geo-system@geo-system.com.

XML extensible Markup Language. część 5

Awizowanie. Instrukcja użytkownika systemu bankowości internetowej dla firm. BOŚBank24 iboss

Budowa dokumentu HTML 5

Transkrypt:

Aplikacje WWW - laboratorium Język JavaScript Celem ćwiczenia jest przygotowanie formularza HTML z wykorzystaniem języka JavaScript. Formularz ten będzie sprawdzany pod względem zawartości przed wysłaniem do serwera. Formularz będzie miał charakter dynamiczny, tzn. niektóre jego elementy będą zmieniać swój stan pod wpływem działań użytkownika. Do wykonania ćwiczenia potrzebny jest dowolny edytor plików tekstowych oraz przeglądarka. 1. Stwórz dwa pliki tekstowe znajdujące się w tym samym katalogu dyskowym: formularz.html i form_check.js. 2. Formularz ma służyć do wprowadzania danych potrzebnych do rejestracji użytkownika w serwisie internetowym. Potrzebne informacje to przede wszystkim dane osobowe. W celu utworzenia formularza wykorzystaj element FORM języka HTML. Formularz o nazwie dane_osobowe powinien umożliwiać wprowadzanie następujących danych: imię, nazwisko, płeć (wybór jednej z opcji), nazwisko panieńskie, e-mail, ulica, kod pocztowy, miasto, uwagi (pole tekstowe). Dla lepszej wizualizacji formularza pola można umieścić w komórkach tabeli. Zawartość pliku formularz.html powinna być następująca: <html> <head> <title>javascript</title> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> </head> <body> <form name="dane_osobowe"> <table border=0> <tr><td>imię</td><td><input type=text name="f_imie"></td></tr> <tr><td>nazwisko</td><td><input type=text name="f_nazwisko"></td></tr> <tr><td>płeć</td><td> <input name="f_plec" value="f_k" checked type="radio"/>kobieta<br> <input name="f_plec" value="f_m" type="radio"/>mężczyzna</td></tr> <tr><td>n.panieńskie</td><td><input type=text name="f_nazwisko_p"></td></tr> <tr><td>e-mail</td><td><input type=text name="f_email"></td></tr> <tr><td>kod pocztowy</td><td><input type=text name="f_kod"></td></tr> <tr><td>ulica/osiedle</td><td><input type=text name="f_ulica"></td></tr> <tr><td>miasto</td><td><input type=text name="f_miasto"></td></tr> <tr><td>uwagi</td><td> <textarea rows="5" cols="15" name="uwagi"></textarea></td></tr> <tr><td colspan="2" align="center"> <input type="button" value="przeslij"></td></tr> </table> </form> </body> </html>

Plik jest wyświetlany przez przeglądarkę w następujący sposób 3. W pliku form_check.js zostaną umieszczone definicje funkcji, które będą sprawdzały elementarne warunki, jakie powinny spełniać wartości wprowadzane do formularza. Sprawdzana powinna być długość napisu, format kodu pocztowego oraz adresu poczty internetowej. Początkowo, plik zawiera jedną funkcję sprawdzającą, czy pole jest puste. // zwraca wartosc true jesli przekazany argument to pusty lancuch function isempty(str) if (str.length == 0)

4. Dodaj do powyższego kodu funkcję, która sprawdzi, czy zgłaszając formularz użytkownik wypełnił wymagane pole Imię function validate(form) if (isempty(form.elements["f_imie"].value)) alert("podaj imię!"); 5. Dodaj do nagłówka HTML w pliku formularz.html odwołanie do zewnętrznego pliku (form_check.js) zawierającego skrypt w języku JavaScript: <html> <head> <title>javascript</title> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <script src="form_check.js"></script> </head> <body> 6. Dodaj do przycisku obsługę zdarzenia naciśnięcia przycisku. Właściwy fragment kodu powinien mieć postać: <input type="button" value="przeslij" onclick="return validate(this.form);">

7. Uruchom formularz w przeglądarce. Przetestuj działanie formularza próbując zgłosić formularz bez wypełnienia pola Imię. 8. Formularz nadal można łatwo oszukać, wpisując do pola Imię ciąg białych znaków. Dodaj do pliku form_check.js funkcję sprawdzającą, czy podany łańcuch znaków nie składa się w całości z białych znaków. // zwraca wartosc true jesli przekazany argument // to ciag bialych znakow function iswhitespace(str) var ws = "\t\n\r "; for (i = 0; i < str.length; i++) var c = str.charat(i); if ( ws.indexof(c) == -1)

9. Zmodyfikuj funkcję validate() w taki sposób, aby przy sprawdzaniu imienia uwzględnić także funkcję iswhitespace(). function validate(form) if (isempty(form.elements["f_imie"].value) iswhitespace(form.elements["f_imie"].value)) alert("podaj imię!"); 10. Sprawdź, czy walidacja działa poprawnie. 11. W kolejnym kroku dodamy funkcję weryfikującą poprawność wprowadzonego kodu pocztowego. Musimy zapewnić, że kod pocztowy składa się z samych cyfr i że jest w poprawnym formacie 99-999. Dodaj do pliku form_check.js poniższe funkcje. // zwraca wartosc true jesli przekazany argument to cyfra function isdigit(c) return ((c >= "0") && (c <= "9")) // zwraca wartosc true jesli przekazany argument // to poprawny kod pocztowy function checkzipcode(str) if (str.length == 6 ) if ( (str.charat(2)) == "-" ) if ( isdigit(str.charat(0)) && isdigit(str.charat(1)) && isdigit(str.charat(3)) && isdigit(str.charat(4)) && isdigit(str.charat(5)) ) alert("zły kod pocztowy"); alert("zły kod pocztowy"); alert("zły kod pocztowy");

12. Dołącz sprawdzanie poprawności wprowadzonego kodu pocztowego do funkcji validate() function validate(form) if (isempty(form.elements["f_imie"].value) iswhitespace(form.elements["f_imie"].value)) alert("podaj imię!"); checkzipcode(form.elements["f_kod"].value); 13. Przetestuj działanie skryptu, próbując zgłosić formularz z niepoprawnym kodem pocztowym.

14. Zmodyfikujemy teraz kod skryptu w taki sposób, aby wygodnie można było dodawać walidację poprawności kolejnych pól. Dodaj do pliku form_check.js funkcję checkstring() // zwraca wartosc prawda jesli przekazany argument to niepusty lancuch, // ktory nie zawiera samych bialych znakow function checkstring(str, msg) if ( iswhitespace(str) isempty(str)) alert(msg); return true 15. Zmień funkcję validate() dodając sprawdzanie poprawności nazwiska, ulicy i miasta. function validate(form) return ( checkstring(form.elements["f_imie"].value, 'Błędne imię') && checkstring(form.elements["f_nazwisko"].value,' Błędne nazwisko') && checkzipcode(form.elements["f_kod"].value) && checkstring(form.elements["f_ulica"].value,' Błędna ulica/osiedle') && checkstring(form.elements["f_miasto"].value,' Błędne miasto') ) 16. Sprawdź działanie formularza, spróbuj przesłać formularz bez podania nazwy ulicy lub nazwy miasta

17. W następnym kroku uzupełnimy skrypt o funkcję weryfikującą podstawową poprawność podanego adresu e-mail. Dodaj do pliku form_check.js poniższy kod. // zwraca wartosc prawda jesli przekazany // argument to poprawny adres email function checkemail(str) if (iswhitespace(str)) alert("podaj właściwy e-mail"); at = str.indexof("@") if (at < 1) alert("nieprawidłowy e-mail") return false var l; l = -1; for (var i = 0; i < str.length; i++) var c = str.charat(i); if ( c == ".") l = i; if ( (l < (at+2) ) (l == str.length-1) ) alert("nieprawidłowy e-mail"); 18. Aby uruchomić weryfikację adresu email, konieczna jest modyfikacja funkcji validate() function validate(form) return ( checkstring(form.elements["f_imie"].value, 'Błędne imię') && checkstring(form.elements["f_nazwisko"].value,'błędne nazwisko') && checkemail(form.elements["f_email"].value) && checkzipcode(form.elements["f_kod"].value) && checkstring(form.elements["f_ulica"].value,'błędna ulica/osiedle') && checkstring(form.elements["f_miasto"].value,'błędne miasto') ) 19. Kolejnym krokiem ćwiczenia będzie rozbudowanie formularza w taki sposób, aby pole Nazwisko panieńskie było dostępne tylko dla osoby, która jest kobietą. W tym celu konieczne będzie obsłużenie zdarzenia polegającego na przełączeniu pomiędzy wartościami pola radiowego kobieta/mężczyzna. W zależności od kierunku zmiany pole Nazwisko panieńskie powinno stać się widoczne lub niewidoczne. Do tego celu zostanie wykorzystana właściwość stylu o nazwie visibility. Może ona przyjąć wartości visible albo hidden. Zmiana nastąpi przy zajściu zdarzenia onclick.

20. Dodaj do pliku formularz.html kod JavaScript odpowiedzialny za zmianę właściwości visibility dla elementu, którego identyfikator jest przekazywany do funkcji jako argument. <body> <script type=text/javascript> function showelement(e) document.getelementbyid(e).style.visibility = 'visible'; function hideelement(e) document.getelementbyid(e).style.visibility = 'hidden'; </script> 21. Rozbuduj definicję pola służącego do wprowadzania nazwiska panieńskiego w taki sposób, aby możliwe było jego ukrywanie. Dotychczasowy kod: <input type=text name="f_nazwisko_p"> zastąp przez: <span id="nazwiskopanienskie" style="visibility:visible;"> <input type=text name="f_nazwisko_p"> </span> 22. Dodaj obsługę zdarzenia polegającego na wybraniu jednej z opcji oznaczających płeć. W zależności od wybranej płci powinno nastąpić ukrycie albo wyświetlenie pola do wprowadzenia nazwiska panieńskiego. Dotychczasowy kod: <input name="f_plec" value="f_k" checked type="radio"/> <input name="f_plec" value="f_m" type="radio"/> zastąp przez: <input name="f_plec" value="f_k" checked type="radio" onclick="showelement('nazwiskopanienskie')"/> <input name="f_plec" value="f_m" type="radio" onclick="hideelement('nazwiskopanienskie')"/>

23. Uruchom formularz w przeglądarce i sprawdź jego działanie. 24. Język JavaScript oferuje możliwość wykorzystania mechanizmu wyrażeń regularnych. Mogą one służyć do weryfikacji czy dany napis odpowiada zdefiniowanemu wzorcowi. W utworzonym formularzu można znaleźć dwa fragmenty, gdzie warto skorzystać z wyrażeń regularnych. Jest to sprawdzanie poprawności kodu pocztowego oraz adresu mailowego. Dodaj do pliku form_check.js funkcję checkemailregex(). Następnie, zamień w funkcji validate() wywołanie funkcji checkemail() na wywołanie funkcji checkemailregex(). Przetestuj działanie formularza. // zwraca wartosc prawda jesli przekazany argument // to poprawny adres email function checkemailregex(str) var email = /[a-za-z_0-9\.]+@[a-za-z_0-9\.]+\.[a-za-z][a-za-z]+/ if (email.test(str)) alert("podaj właściwy e-mail");

25. Kolejnym zadaniem w ćwiczeniu będzie usprawnienie działania formularza przez dodanie weryfikacji kodu pocztowego w czasie rzeczywistym, tzn. podczas wpisywania tekstu przez użytkownika. W tym celu koniecznie jest wykorzystanie zdarzenia następującego w chwili wpisania nowego znaku w pole kodu pocztowego. Dotychczasowy kod <td><input type=text name="f_kod"></td> zastąp przez: <td width="200"> <input type=text name="f_kod" onkeyup="checkzipcoderegex(this);"> <b id="kod" class="red">źle</b> </td> Powyższa zmiana wprowadza obsługę zdarzania onkeyup, które następuje po zwolnieniu klawisza. Dodatkowo, obok pola do wprowadzania kodu pocztowego, został dodany tekst z identyfikatorem kod. Ten tekst będzie sygnalizował użytkownikowi, czy wpisywany kod jest poprawny. 26. Konieczne jest zdefiniowanie funkcji sprawdzającej wpisany tekst po każdym puszczeniu klawisza. Do sekcji SCRIPT w pliku formularz.html dodaj funkcję checkzipcoderegex(). Kod tej funkcji znajduje się poniżej. function checkzipcoderegex(e) var ZIPcode = /^[0-9]2-[0-9]3$/ if (ZIPcode.test(e.value) ) document.getelementbyid("kod").innerhtml = "OK"; document.getelementbyid("kod").classname = "green"; document.getelementbyid("kod").innerhtml = "Źle"; document.getelementbyid("kod").classname = "red"; 27. W sekcji nagłówkowej dokumentu formularz.html dodaj prosty arkusz stylistyczny <style type="text/css">.green color : green.red color : red </style>

28. W ciele funkcji validate() (plik form_check.js) zamień wywołanie funkcji checkzipcode() na wywołanie funkcji checkzipcoderegex(). Sprawdź działanie formularza.