Podstawy JavaScript. <script type="text/javascript"> kod skryptu </script>

Podobne dokumenty
Krótki kurs JavaScript

CZYM JEST JAVASCRIPT?

TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty

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

Zdarzenia Zdarzenia onload i onunload

Podstawy JavaScript ćwiczenia

Wykład 03 JavaScript. Michał Drabik

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

Bazy Danych i Usługi Sieciowe

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Zajęcia 4 - Wprowadzenie do Javascript

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

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

JAVAScript w dokumentach HTML - przypomnienie

XML extensible Markup Language. część 5

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

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]

Tworzenie Stron Internetowych. odcinek 10

WYKŁAD 4 JĘZYK JAVASCRIPT CZĘŚĆ 1

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

Funkcje i instrukcje języka JavaScript

Rys.2.1. Drzewo modelu DOM [1]

JAVAScript w dokumentach HTML (1)

Czym jest AJAX. AJAX wprowadzenie. Obiekt XMLHttpRequest (XHR) Niezbędne narzędzia. Standardowy XHR. XHR z obsługą baz danych

Cw.12 JAVAScript w dokumentach HTML

Umieszczanie kodu. kod skryptu

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

JAVAScript w dokumentach HTML (2)

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Zaawansowane aplikacje internetowe

1 Podstawy c++ w pigułce.

Projektowanie stron WWW

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

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

JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //...

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

JavaScript. mgr inż. Remigiusz Pokrzywiński

TECHNOLOGIE SIECI WEB

Tworzenie aplikacji internetowych E14

Podstawy programowania w języku JavaScript

Techniki WWW. (HTML, CSS, JavaScript) Dr inż. Marcin Zieliński WYKŁAD 6. Środa 15:30-17:00 sala: A-1-04

PHP: bloki kodu, tablice, obiekty i formularze

JAVAScript tablice, przekazanie danych do funkcji, obiekty Date i window

WŁĄCZANIE W PRZEGLĄDARKACH INTERNETOWYCH OBSŁUGI SKRYPTÓW JAVASCRIPT

DOM (Document Object Model)

Pętle. Dodał Administrator niedziela, 14 marzec :27

XML extensible Markup Language. część 5

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

SSK - Techniki Internetowe

Języki skryptowe w programie Plans

Obiektowe bazy danych

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Wybrane działy Informatyki Stosowanej

Obiekt navigator. Dodał Administrator wtorek, 16 marzec :32

Bazy Danych i Usługi Sieciowe

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

Wprowadzenie do języka JavaScript

Wprowadzenie do Internetu zajęcia 4

Spis treści. Wstęp 5 Rozdział 1. Praca z AJAX-em 9. Rozdział 2. Współpraca ze skryptami PHP 55. Rozdział 3. Obsługa formularzy 81

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Podstawy technologii WWW

Komponent Formularz. Rys. 1. Strona programu Joomla - Rys. 2. Instalacja komponentu

Scenariusz Web Design DHTML na 10 sesji. - Strony statyczne I dynamiczne. - Dodawanie kodu VBScript do strony HTML. Rysunek nie jest potrzebny

Materiały do laboratorium MS ACCESS BASIC

JavaScript. Wstęp do podstaw elementów. dr inż. Paweł Boiński, Politechnika Poznańska

HTML ciąg dalszy. Listy, formularze

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

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Podstawy Programowania Podstawowa składnia języka C++

Aplikacje WWW - laboratorium

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Kurs WWW wykład 6. Paweł Rajba

Programowanie obiektowe

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Personal Home Page PHP: Hypertext Preprocessor

Ćwiczenie: JavaScript Cookies (3x45 minut)

Aplikacje internetowe

OpenLaszlo. OpenLaszlo

Szkolenie wycofane z oferty. Programowanie w JavaScript (zawiera jquery)

Michał Bielecki, KNI 'BIOS'

KURSY PROGRAMOWANIA DLA DZIECI

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Aplikacje WWW - laboratorium

FORMULARZE. G. Przęczek

Mazowiecki Elektroniczny Wniosek Aplikacyjny

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Zasady programowania Dokumentacja

Programowanie internetowe

Programowanie internetowe

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Programowanie komputerowe. Zajęcia 1

JavaScript. Æwiczenia praktyczne

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

Aplikacje WWW - laboratorium

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Transkrypt:

Podstawy JavaScript Jest to język skryptowy stworzony przez firmę Netscape jako LiveScript, którego celem było rozszerzenie możliwości HTMLa w taki sposób, aby strony stały się bardziej atrakcyjne pod względem sposobu prezentacji danych oraz zostały wzbogacone o możliwość interakcji z użytkownikiem. Na mocy porozumienia z firmą Sun Microsystems w 1995 roku oficjalnie narodził się pod obecną nazwą - JavaScript. JavaScript a Java. Istnieją dwie szkoły, jeżeli chodzi o powiązania JavaScript - Java: jedni uważają, że JavaScript sięga swoimi korzeniami języka Java, a inni dowodzą, że poza nazwą - niewiele mają ze sobą wspólnego. Przede wszystkim JavaScript jest językiem skryptowym - tzn. interpretowanym. Nie musi być kompilowany do kodu maszynowego, a żeby zobaczyć jak działa aplikacja, którą napisaliśmy za jego pomocą - wystarczy przeglądarka internetowa obsługująca JavaScript. Ze względów bezpieczeństwa nie można zapisywać na dysku komputera, na którym przeglądana jest dana strona. Wszelkie odwołania do funkcji i obiektów wykonywane są w trakcie wykonywania programu. Java natomiast jest w pełni obiektowym językiem programowania pozwalającym na budowanie zaawansowanych i skomplikowanych programów, a ze względu na to, że są uruchamiane w specjalnym środowisku - Wirtualnej Maszynie Java - niezależnych od platformy sprzętowej i systemowej. Podobieństwa pomiędzy Java i JavaScriptem można zauważyć np. w samej składni języków. Zalety Język jest relatywnie łatwy do opanowania - nic nie stoi na przeszkodzie, aby zacząć używać go już po kilku minutach od rozpoczęcia nauki. Ponieważ jest to najbardziej rozpowszechniony język skryptowy, w Internecie można znaleźć setki stron z kursami oraz gotowymi, przykładowymi skryptami, a także miliony witryn wykorzystujących JavaScript. O jego popularności w dużej mierze zadecydował fakt, iż pozwala on na odciążenie serwerów i ograniczenie zbędnych danych, wysyłanych przez Internet. Można sobie wyobrazić sklepy internetowe, w których nieodzownym elementem są formularze wypełniane przez użytkownika. Dzięki JavaScript można sprawdzić poprawność wprowadzonych danych na komputerze klienta, pomijając przy ewentualnym błędzie scenariusz, w którym dane są wysyłane, serwer zużywa moc obliczeniową na ich sprawdzenie, wygenerowanie strony z opisem błędu i odesłaniem jej z powrotem na komputer klienta. JavaScript jest nieustannie rozwijany. Powstały liczne biblioteki, odciążające użytkownika z konieczności pisania powtarzającego się często kodu, a także dbające o to, żeby efekt był zgodny z założeniami na najpopularniejszych przeglądarkach np. JQuery. Wady Największą wadą JavaScript są różnice w interpretacji kodu w różnych przeglądarkach. Zdarza się tak, że różne polecenia w różnych przeglądarkach realizują to samo. Jest to efekt walki pomiędzy producentami przeglądarek, którzy chcieli przeforsować swoje koncepcje i narzucić je użytkownikom. To dodatkowo objawia się w braku spójnej i jednoznacznej dokumentacji. Nie można być pewnym, że kod napisany nawet zgodnie z zaleceniami W3C będzie prawidłowo działał na wszystkich przeglądarkach. Oczywiście najwięcej problemów jak dotąd przysparzał Internet Explorer. Umieszczanie kodu 1. Zagnieżdżony w pliku HTML (w dowolnym miejscu w znacznikach body jak i head) <script type="text/javascript"> kod skryptu </script> 1

2. W osobnym pliku. Wtedy dodajemy w nagłówku strony odwołanie do pliku ze skryptami <script type="text/javascript" src="nazwa_pliku.js"></script> 3. Gdy przeglądarka nie obsługuje JavaScript możemy poinformować o tym użytkownika: <noscript> Twoja przeglądarka nie obsługuje JavaScriptu. Aby zobaczyć stronę w pełnej funkcjonalności, zainstaluj inną przeglądarkę: Internet Explorer, Chrome, Firefox, Netscape Navigator, Mozilla, Opera... </noscript> Lub możemy wykorzystać komentarze JavaScript <script type="text/javascript"> // Twoja przeglądarka nie obsługuje JavaScriptu. /* Aby zobaczyć stronę w pełnej funkcjonalności, zainstaluj inną przeglądarkę: Internet Explorer, Netscape Navigator, Mozilla, Opera... */ <!-- ukrywamy kod przed nieznającymi nas przeglądarkami kod skryptu // koniec skryptu - koniec ukrywania --> </script> Obecnie jednak większość przeglądarek obsługuje JavaScripty. Podstawowe operacje document.write("witaj świecie!") wypisze podany tekst na stronie. W nawiasach można wstawić dowolny kod html np. document.write("na ekranie zobaczysz<br>c:\\>") document.write("polecam film \"Wladca Pierścieni\"") document.write("<b><a href=\"spis.htm\">spis treści</a></b>") Zmienne. Podobnie jak w PHP, w JavaScript typ zmiennej jest rozpoznawany automatycznie przy jej deklaracji var imie="janek" // zmienna typu string var wiek=20 // zmienna typu integer document.write("nasz gość ma na imie "+imie+".") document.write(imie+" ma "+wiek+" lat") Operatory Operatory Arytmetycze Operator Opis Przykład Wynik + Dodawanie x=3 x=x+4 - Odejmowanie x=4 x=6-x * Mnożenie x=3 x=x*5 / Dzielenie 10/5 9/2 7 2 15 2 4.5 2

% Modulo (reszta z dzielenia) 4%3 12%8 8%2 ++ Zwiększanie o 1 x=2 x++ -- Zmniejszanie o 1 x=4 x-- 1 4 0 x=3 x=3 Operatory przypisania Operator Przykład Równoważne z = x=y += x+=7 x=x+7 -= x-=3 x=x-3 *= x*=y x=x*y /= x/=y x=x/y %= x%=y x=x%y Operatory porównania Operator Opis Przykład == jest równe 2==3 wynik:fałsz!= nie jest równe 2!=3 wynik:prawda > jest większe 25>30 wynik:fałsz < jest mniejsze 2<3 wynik:prawda >= większe lub równe 25>=3 wynik:prawda <= mniejsze lub równe 2<=3 wynik:prawda Operatory logiczne Operator Opis Przykład && i x=3 y=4 (x < 9 && y > 2) wynik:prawda 3

lub x=3 y=4 (x==8 y==6) wynik:fałsz! zaprzeczenie x=3 y=4!(x==y) wynik:prawda Funkcje function suma(liczba1, liczba2) sumaliczb=liczba1+liczba2 // dodaje liczby i przypisuje nowej zmiennej wynik=sumaliczb return wynik // zwraca zmienną wynik a=1; b=2; c=suma(a,b) // funkcja zwraca wartość, która jest podstawiana do zmiennej c document.write("c="+c+" to samo co: "+ suma(a,b)) Funkcje predefiniowane Pisząc nasze skrypty mamy zawsze dostęp do zestawu funkcji standardowych dla JavaScript. Należy do nich przykładowo funkcja alert - wyświetlająca okienko dialogowe z informacją i przyciskiem OK, albo prompt - wyświetlającej okienko, w którym użytkownik może wpisać wartość zwracaną potem do programu. alert("witam na mojej stronie") document.write("miło mi Cię gościć "+ prompt("podaj imię:") +" na mojej stronie") Obiekty Obiekty są konstrukcjami programistycznymi posiadającymi tzw. właściwości, którymi mogą być zmienne lub inne obiekty. Z obiektami powiązane są funkcje wykonujące operacje na jego właściwościach, a nazywamy je metodami. Do właściwości danego obiektu możemy się dostać używając zapisu: nazwa_obiektu.nazwa_właściwości function pokaz_auto() dane="marka: "+ this.marka +" Rocznik: "+ this.rok +" Cena: "+ this.cena +"<br>" document.write(dane) this.wlasciciel.pokaz() // metoda pokaz obiektu osoba function pokaz_osoba() dane="imie: "+ this.imie +" nazwisko: "+ this.nazwisko +"<br>" document.write(dane) function auto(marka,rok,cena,wlasciciel) this.marka=marka this.rok=rok this.cena=cena this.wlasciciel=wlasciciel this.pokaz=pokaz_auto // dodajemy metode pokazujaca dane naszego auta function osoba(imie,nazwisko) this.nazwisko=nazwisko this.imie=imie this.pokaz=pokaz_osoba // dodajemy metode pokazujaca nasza osobe 4

// tu koniec funkcji pisanych w sekcji HEAD // potem gdzieś gdzie nam potrzeba: posiadacz=new osoba("jan","kowalski") bryka=new auto("ferrari",2003,200000,posiadacz) bryka.pokaz() // pokazuje nam wszystkie wlasciwosci naszego obiektu Instrukcje warunkowe i pętle If else if (warunek) kod wykonywany jeżeli warunek spełniony else kod wykonywany jeżeli warunek nie spełniony switch switch (zmienna) case wartosc1: kod wykonywany gdy zmienna=wartosc1 break case wartosc2: kod wykonywany gdy zmienna=wartosc2 break //... itd case wartoscx: kod wykonywany gdy zmienna=wartoscx break default: kod wykonywany, gdy żadnej z powyższych wartości nie przyjmuje zmienna Operator warunkowy zmienna=(warunek)?wartosctrue:wartoscfalse while while (warunek) kod pętli Do while do kod wykonywany w pętli while (warunek) For for(inicjalizacja_zmiennej; warunek; zmiana_zmiennej) kod wykonywany w pętli Zdarzenia elementów HTML Zdarzenia są to akcje podejmowane przez przeglądarkę w odpowiedzi na ruchy myszki, klawiatury, bądź ogólnie - na zmianę stanu dokumentu w danym momencie (np. załadowanie się obrazka, kodu strony). Dzięki JavaScript możemy kontrolować większość zdarzeń jakie zachodzą na naszych stronach. Najczęściej wykorzystywane zdarzenia przedstawione są poniżej: 5

zdarzenie opis z obiektami Onclick zachodzi, gdy naciśniemy przycisk myszki na obiekcie button, checkbox, Image, layer, link, radio, reset, submit onmouseover zachodzi, gdy najedziemy wskaźnikiem na obiekt Image, layer, link onmouseout zachodzi, gdy opuszczamy wskaźnikiem obiekt Image, layer, link onmousedown zachodzi, gdy trzymamy przyciśnięty przycisk myszki na obiekcie Image, layer onmouseup zachodzi, gdy zwolnimy przycisk myszki na obiekcie Image, layer Onblur zachodzi, gdy opuszczamy obiekt (przejście na inny obiekt password, select, text, textarea Onfocus zachodzi, gdy wchodzimy na obiekt password, select, text, textarea Onchange Onselect zachodzi, gdy opuszczamy obiekt, którego zawartość została zmieniona zachodzi, gdy zaznaczymy tekst wewnątrz pola tekstowego password, select, text, textarea password, text, textarea Onsubmit zachodzi, gdy wysłamy formularz form On reset zachodzi, gdy resetujemy formularz form Onload zachodzi w momencie załadowania dokumentu do przeglądarki document, frame Onunload zachodzi w momencie opuszczania strony document, frame Onabort zachodzi, gdy przerwane zostaje ładowanie strony document, frame Onerror zachodzi, gdy przeglądarka nie może załadować obrazu Image HTML DOM DOM to skrót od Document Object Model - czyli model obiektów dokumentu. Jest to tzw. interfejs programowania dla elementów HTML jakie mogą pojawiać się na stronach. HTML DOM to standard określający sposoby dostępu oraz zmiany zawartości, właściwości, parametrów poszczególnych elementów HTML. Dzięki temu do zawartości stron HTML mogą dostawać się wszystkie typy przeglądarek i języków programowania. Każdy z elementów HTML ma określone właściwości i metody, które są zaimplementowane również w JavaScript. Nie ma sensu zamieszczanie tutaj pełnego opisu tych elementów. Wszystkie potrzebne informacje można znaleźć pod adresami: 6

http://www.w3schools.com/htmldom/default.asp http://www.w3schools.com/js/js_obj_htmldom.asp Nasz dokument możemy rozrysować jako hierarchiczne drzewo. Na samej górze jest dokument HTML, a tuż pod nim znajdują się jego "dzieci" (inna nazwa to korzenie - nody) - czyli elementy znajdujące się w document. Przykładowo jeżeli na naszej stronie będziemy mieli akapit: <p id="paragraf">ten napis zawiera <strong id="bold">pogrubiony tekst</strong></p> <p>lorem ipsum</p> to odwołanie się do naszych elementów z poziomu skryptu będzie miało postać: document.getelementbyid('paragraf') //wskaz uje na nasz akapit document.getelementbyid('bold') //wskaz uje na nasz znacznik strong document.getelementsbytagname('p') //kolek cja akapitów document.getelemensbytagname('p')[0] //wskaz uje na pierwszy akapit document.getelemensbytagname('p')[0].getelementsbytagname('strong')[0] //pobie ramy pierwszy akapit, a w nim pobieramy pierwszy strong document.getelementbyid('paragraf').getelementsbytagname('strong') //kolek cja znaczników strong znajdujących się w akapicie paragraf document.getelementbyid('paragraf')[1].firstchild //pierwsze dziecko 2 akapitu document.getelementbyid('cos').childnodes[1] //drugie dziecko elementu cos document.getelementbyid('cos').parentnode //element rodzic w którym leży element cos Przykład HTML <table id="tabelka" class="tab"> <tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr> <tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr> <tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr> <tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr> </table> JavaScript function podswietl_wiersze(id) var tab = document.getelementbyid(id); var td = tab.getelementsbytagname('td'); for (x=0; x<td.length; x++) td[x].onmouseover = function() this.parentnode.classname = 'podswietlone'; //ustawiamy klase hover dla TR 7

td[x].onmouseout = function() this.parentnode.classname = ''; podswietl_wiersze('tabelka') AJAX Technologia AJAX nie jest niczym nowym, tak naprawdę jest używana już od 1998 roku. Popularność zyskała niedawno, w latach 2004-2005, kiedy to Google zaczęło używać AJAXa na szerszą skalę, w swoich projektach. Wtedy właśnie webmasterzy zrozumieli, że połączenie JavaScript z XML daje im bardzo duże możliwości. Przykładowy kod: <!-- DOCTYPE --> <html> <head> <title>przykładowy skrypt AJAX</title> <script type="text/javascript"> // pierwsza część kodu var ObiektXMLHttp = false; if (window.xmlhttprequest) ObiektXMLHttp = new XMLHttpRequest(); else if (window.activexobject) ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); // druga część kodu function getdata(zrodlo, cel) if(obiektxmlhttp) var cel = document.getelementbyid(cel); ObiektXMLHttp.open("GET", zrodlo); ObiektXMLHttp.onreadystatechange = function() if (ObiektXMLHttp.readyState == 4) cel.innerhtml = ObiektXMLHttp.responseText; // trzecia część kodu ObiektXMLHttp.send(null); </script> </head> <body> <h1>ajax w praktyce</h1> <form> <input type = "button" value = "Pokaż wiadomość" onclick = "getdata('http://adres.pl/wiad.txt', 'div')"> </form> <div id="div"> Tutaj pojawi się wiadomość. </div> </body> </html> Pierwsza część kodu inicjuje obiekt XMLHttp - warunek if() jest tam tylko dlatego, że Internet Explorer nie potrafi zainicjować tego obiektu bez ActiveX - więc musimy mu trochę pomóc. Druga część kodu zawiera funkcję getdata z dwoma atrybutami: źródło, czyli skąd ma pobrać dane, oraz cel - dokąd ma je wysłać. Jak pewnie zauważyłeś, przy otwieraniu pliku z danymi podajemy nie tylko jego adres (najlepiej, aby plik z którego pobierasz dane znajdował się na tym samym serwerze co plik 8

pobierający dane), ale też dodatkowy atrybut - "GET". Zauważ też, że treść z pliku pobierana jest dopiero wówczas, gdy ObiektXMLHttp.readyState będzie miał wartość 4. Co to oznacza? Po prostu, że ObiektXMLHttp zakończył swoje działania i można spokojnie wyświetlić pobrane dane. Formularze Podpowiedzi, sprawdzanie poprawności //sprawdza zwykłe pole tekstowe function sprawdzpole() if (this.value=='') this.createerror('wpisałeś złe dane'); return false; else this.removeerror(); return true; //funkcja sprawdza poprawnosc maila function sprawdzmaila() var WzorMaila = /^[0-9a-z_.-]+@[0-9a-z.-]+\.[a-z]2,3$/i if (!WzorMaila.test(this.value)) this.createerror('podałeś złego emaila'); return false; else this.removeerror(); return true; //etap 1 - podpowiedzi var formularz = document.getelementbyid('forma'); formularz['imie'].onchange = sprawdzpole; formularz['mail'].onchange = sprawdzmaila; //etap 2 - wysylanie formularz.onsubmit = function() for (x=0; x<this.forms.elements.length; x++) if (this.classname.indexof('wymagane')!=-1 && this.classname.indexof('daneerror')!=-1) //błędne dane - nie wysyłamy return false; return true; Zadanie Dodać przynajmniej jeden skrypt JavaScript do strony. Skrypt może na przykład służyć do: walidacji formularza, obsługa zdarzeń na stronie, dynamicznej zmiany treści strony (bez przeładowania jej), zmiany pewnych elementów na stronie, ich właściwości (np. kolorów). 9