{"id":135,"date":"2025-05-21T01:05:50","date_gmt":"2025-05-21T01:05:50","guid":{"rendered":"https:\/\/zajecia.tsadowski.pl\/?p=135"},"modified":"2025-11-06T15:06:48","modified_gmt":"2025-11-06T15:06:48","slug":"tworzenie-skryptow-w-js","status":"publish","type":"post","link":"https:\/\/zajecia.tsadowski.pl\/index.php\/2025\/05\/21\/tworzenie-skryptow-w-js\/","title":{"rendered":"Tworzenie skrypt\u00f3w w JS"},"content":{"rendered":"<h1>Lekcja JavaScript: Praca z formularzami, zdarzeniami i manipulacja DOM<\/h1>\n<h2>Cele lekcji<\/h2>\n<p>Po zako\u0144czeniu lekcji ucze\u0144:<\/p>\n<ul>\n<li>Rozumie jak pobiera\u0107 warto\u015bci z p\u00f3l formularza (np. input type=&#8221;text&#8221; i checkbox).<\/li>\n<li>Umie przypisywa\u0107 dane do p\u00f3l tekstowych (innerHTML) i atrybut\u00f3w obraz\u00f3w (src).<\/li>\n<li>Stosuje instrukcje warunkowe <code>if<\/code>, <code>else<\/code>.<\/li>\n<li>Rozr\u00f3\u017cnia i stosuje obs\u0142ug\u0119 zdarze\u0144 onclick i addEventListener.<\/li>\n<li>Potrafi dynamicznie tworzy\u0107 ci\u0105gi znak\u00f3w (np. nazw\u0119 pliku graficznego).<\/li>\n<\/ul>\n<hr \/>\n<h2>Wst\u0119p teoretyczny<\/h2>\n<h3>1. Model DOM (Document Object Model)<\/h3>\n<p>DOM to struktura drzewa, kt\u00f3ra reprezentuje elementy HTML jako obiekty JavaScript. Mo\u017cemy je pobiera\u0107, modyfikowa\u0107, ukrywa\u0107, zmienia\u0107 style i reagowa\u0107 na interakcje u\u017cytkownika.<\/p>\n<h3>2. Pobieranie danych z formularzy<\/h3>\n<p>\u015awietnie! Rozwi\u0144my zagadnienie <strong>pobierania danych z formularzy<\/strong> w JavaScript o dodatkowe przypadki i dok\u0142adniejsze wyja\u015bnienia. To bardzo wa\u017cny temat nie tylko na egzaminie zawodowym INF.03, ale te\u017c w codziennej pracy z interfejsami u\u017cytkownika w aplikacjach webowych.<\/p>\n<hr \/>\n<h3>2.1. <strong>Pola tekstowe (input type=&#8221;text&#8221;, &#8222;email&#8221;, &#8222;number&#8221;, itd.)<\/strong><\/h3>\n<p>Pola tekstowe s\u0105 najcz\u0119\u015bciej u\u017cywanymi polami w formularzach. Dane z takich p\u00f3l pobieramy za pomoc\u0105 w\u0142a\u015bciwo\u015bci <code>.value<\/code>.<\/p>\n<pre><code class=\"lang-html language-html html\">&lt;input type=&quot;text&quot; id=&quot;imie&quot; placeholder=&quot;Podaj imi\u0119&quot; \/&gt;\n&lt;input type=&quot;email&quot; id=&quot;email&quot; placeholder=&quot;Podaj e-mail&quot; \/&gt;\n&lt;input type=&quot;number&quot; id=&quot;wiek&quot; placeholder=&quot;Podaj wiek&quot; \/&gt;<\/code><\/pre>\n<pre><code class=\"lang-js language-js js\">let imie = document.getElementById(&quot;imie&quot;).value;\nlet email = document.getElementById(&quot;email&quot;).value;\nlet wiek = parseInt(document.getElementById(&quot;wiek&quot;).value);<\/code><\/pre>\n<blockquote>\n<p>\ud83d\udccc <strong>Uwaga:<\/strong> Domy\u015blnie <code>value<\/code> zawsze zwraca warto\u015b\u0107 jako tekst (<code>string<\/code>). Je\u015bli potrzebujesz liczby, u\u017cyj <code>parseInt()<\/code> lub <code>parseFloat()<\/code>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>2.2. <strong>Checkbox \u2013 pole wyboru (input type=&#8221;checkbox&#8221;)<\/strong><\/h3>\n<p>Checkbox zwraca <code>true<\/code> (je\u015bli zaznaczony) lub <code>false<\/code> (je\u015bli nie).<\/p>\n<pre><code class=\"lang-html language-html html\">&lt;input type=&quot;checkbox&quot; id=&quot;zgoda&quot; \/&gt; Akceptuj\u0119 regulamin<\/code><\/pre>\n<pre><code class=\"lang-js language-js js\">let czyZaznaczone = document.getElementById(&quot;zgoda&quot;).checked;<\/code><\/pre>\n<hr \/>\n<h3>2.3. <strong>Radio \u2013 wyb\u00f3r jednej opcji z wielu (input type=&#8221;radio&#8221;)<\/strong><\/h3>\n<p>Radia dzia\u0142aj\u0105 w grupach (ta sama <code>name<\/code>) i tylko jeden mo\u017ce by\u0107 zaznaczony. Isniej\u0105 proste dwie metody na sprawdzenie warto\u015bci radio:<\/p>\n<pre><code class=\"lang-html language-html html\">&lt;form id=&quot;formularz&quot;&gt;\n      &lt;input type=&quot;radio&quot; name=&quot;plec&quot; value=&quot;kobieta&quot; \/&gt; Kobieta\n      &lt;input type=&quot;radio&quot; name=&quot;plec&quot; value=&quot;mezczyzna&quot; \/&gt;\n      M\u0119\u017cczyzna\n      &lt;button type=&quot;button&quot; onclick=&quot;pobierzPlec()&quot;&gt;Sprawd\u017a p\u0142e\u0107&lt;\/button&gt;\n    &lt;\/form&gt;\n    &lt;script&gt;\n      function pobierzPlec() {\n        let plec = document.forms[&quot;formularz&quot;].elements[&quot;plec&quot;].value;\n        console.log(&quot;Wybrana p\u0142e\u0107:&quot;, plec);\n      }\n\n    &lt;\/script&gt;<\/code><\/pre>\n<pre><code class=\"lang-html language-html html\">&lt;form id=&quot;formularz&quot;&gt;\n      &lt;input id=&quot;kobieta&quot; type=&quot;radio&quot; name=&quot;plec&quot; value=&quot;kobieta&quot; \/&gt; Kobieta\n      &lt;input id=&quot;mezczyzna&quot; type=&quot;radio&quot; name=&quot;plec&quot; value=&quot;mezczyzna&quot; \/&gt;\n      M\u0119\u017cczyzna\n      &lt;button type=&quot;button&quot; onclick=&quot;pobierzPlec()&quot;&gt;Sprawd\u017a p\u0142e\u0107&lt;\/button&gt;\n    &lt;\/form&gt;\n    &lt;script&gt;\n      function pobierzPlec2() {\n        if (document.getElementById(&quot;kobieta&quot;).checked) {\n          console.log(&quot;Wybrano: kobieta&quot;);\n        } else if (document.getElementById(&quot;mezczyzna&quot;).checked) {\n          console.log(&quot;Wybrano: m\u0119\u017cczyzna&quot;);\n        } else {\n          console.log(&quot;Nie wybrano nic&quot;);\n        }\n      }\n    &lt;\/script&gt;<\/code><\/pre>\n<hr \/>\n<h3>2.4. <strong>Select \u2013 lista rozwijana (select)<\/strong><\/h3>\n<pre><code class=\"lang-html language-html html\">&lt;select id=&quot;miasto&quot;&gt;\n  &lt;option value=&quot;warszawa&quot;&gt;Warszawa&lt;\/option&gt;\n  &lt;option value=&quot;krakow&quot;&gt;Krak&oacute;w&lt;\/option&gt;\n&lt;\/select&gt;<\/code><\/pre>\n<pre><code class=\"lang-js language-js js\">let wybraneMiasto = document.getElementById(&quot;miasto&quot;).value; \/\/ &quot;warszawa&quot;<\/code><\/pre>\n<p>Je\u015bli chcesz uzyska\u0107 te\u017c tekst wybranej opcji:<\/p>\n<pre><code class=\"lang-js language-js js\">let select = document.getElementById(&quot;miasto&quot;);\nlet tekstOpcji = select.options[select.selectedIndex].text; \/\/ &quot;Warszawa&quot;<\/code><\/pre>\n<hr \/>\n<h3>2.5. <strong>Textarea \u2013 wi\u0119ksze pole tekstowe<\/strong><\/h3>\n<pre><code class=\"lang-html language-html html\">&lt;textarea id=&quot;opis&quot; rows=&quot;4&quot; cols=&quot;30&quot;&gt;Wpisz opis...&lt;\/textarea&gt;<\/code><\/pre>\n<pre><code class=\"lang-js language-js js\">let opis = document.getElementById(&quot;opis&quot;).value;<\/code><\/pre>\n<hr \/>\n<h3>2.6. <strong>Przyk\u0142ad \u2013 Pobieranie wszystkich danych z formularza<\/strong><\/h3>\n<pre><code class=\"lang-html language-html html\">&lt;form id=&quot;formularz&quot;&gt;\n  &lt;input type=&quot;text&quot; id=&quot;imie&quot; placeholder=&quot;Imi\u0119&quot; \/&gt;\n  &lt;input type=&quot;number&quot; id=&quot;wiek&quot; placeholder=&quot;Wiek&quot; \/&gt;\n  &lt;input type=&quot;checkbox&quot; id=&quot;newsletter&quot; \/&gt; Zapisz mnie do newslettera&lt;br \/&gt;\n  &lt;input type=&quot;radio&quot; name=&quot;plec&quot; value=&quot;kobieta&quot; \/&gt; Kobieta\n  &lt;input type=&quot;radio&quot; name=&quot;plec&quot; value=&quot;mezczyzna&quot; \/&gt; M\u0119\u017cczyzna&lt;br \/&gt;\n  &lt;select id=&quot;miasto&quot;&gt;\n    &lt;option value=&quot;wroclaw&quot;&gt;Wroc\u0142aw&lt;\/option&gt;\n    &lt;option value=&quot;gdansk&quot;&gt;Gda\u0144sk&lt;\/option&gt;\n  &lt;\/select&gt;\n&lt;br \/&gt;\n  &lt;textarea id=&quot;komentarz&quot;&gt;Tw&oacute;j komentarz&lt;\/textarea&gt;\n&lt;br \/&gt;\n  &lt;button type=&quot;button&quot; onclick=&quot;pobierzDane()&quot;&gt;Wy\u015blij&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<pre><code class=\"lang-js language-js js\">function pobierzDane() {\n  let imie = document.getElementById(&quot;imie&quot;).value;\n  let wiek = document.getElementById(&quot;wiek&quot;).value;\n  let newsletter = document.getElementById(&quot;newsletter&quot;).checked;\n  let plec = document.forms[&quot;formularz&quot;].elements[&quot;plec&quot;].value;\n  let miasto = document.getElementById(&quot;miasto&quot;).value;\n  let komentarz = document.getElementById(&quot;komentarz&quot;).value;\n\n  console.log(&quot;Imi\u0119:&quot;, imie);\n  console.log(&quot;Wiek:&quot;, wiek);\n  console.log(&quot;Newsletter:&quot;, newsletter);\n  console.log(&quot;P\u0142e\u0107:&quot;, plec);\n  console.log(&quot;Miasto:&quot;, miasto);\n  console.log(&quot;Komentarz:&quot;, komentarz);\n}<\/code><\/pre>\n<h2>3. Zapisywanie danych do element\u00f3w HTML (rozszerzenie)<\/h2>\n<h3>3.1. <strong>Zmiana tre\u015bci tekstowej \u2014 <code>innerHTML<\/code> i <code>innerText<\/code><\/strong><\/h3>\n<p>Aby zmieni\u0107 tekst w elemencie HTML (np. paragrafie, nag\u0142\u00f3wku, divie), u\u017cywamy w\u0142a\u015bciwo\u015bci:<\/p>\n<ul>\n<li><code>innerHTML<\/code> \u2013 umo\u017cliwia wstawianie r\u00f3wnie\u017c kodu HTML<\/li>\n<li><code>innerText<\/code> \u2013 wstawia tylko tekst (ignoruje HTML)<\/li>\n<\/ul>\n<h4>Przyk\u0142ad 1 \u2013 paragraf z komunikatem:<\/h4>\n<pre><code class=\"lang-html language-html html\">&lt;p id=&quot;komunikat&quot;&gt;Tutaj pojawi si\u0119 tekst...&lt;\/p&gt;<\/code><\/pre>\n<pre><code class=\"lang-js language-js js\">document.getElementById(&quot;komunikat&quot;).innerHTML = &quot;Witaj, uczniu!&quot;;<\/code><\/pre>\n<p>Mo\u017cemy te\u017c dynamicznie doda\u0107 pogrubienie lub inny znacznik HTML:<\/p>\n<pre><code class=\"lang-js language-js js\">document.getElementById(&quot;komunikat&quot;).innerHTML = &quot;&lt;strong&gt;To wa\u017cna wiadomo\u015b\u0107!&lt;\/strong&gt;&quot;;<\/code><\/pre>\n<h4>Kiedy u\u017cywa\u0107 <code>innerText<\/code>?<\/h4>\n<p>Je\u015bli chcesz unikn\u0105\u0107 interpretowania HTML (np. u\u017cytkownik wpisuje dane), u\u017cywaj <code>innerText<\/code>.<\/p>\n<hr \/>\n<h3>3.2. <strong>Zmiana obrazk\u00f3w \u2014 <code>src<\/code><\/strong><\/h3>\n<p>Do zmiany obrazka s\u0142u\u017cy w\u0142a\u015bciwo\u015b\u0107 <code>.src<\/code>. Mo\u017cesz do niej przypisa\u0107 dowoln\u0105 \u015bcie\u017ck\u0119 (np. URL lub nazw\u0119 pliku lokalnego).<\/p>\n<h4>Przyk\u0142ad 2 \u2013 zmiana zdj\u0119cia:<\/h4>\n<pre><code class=\"lang-html language-html html\">&lt;img id=&quot;zdjecie&quot; src=&quot;zdj1_duze.jpg&quot; \/&gt;<\/code><\/pre>\n<pre><code class=\"lang-js language-js js\">let numer = 2;\ndocument.getElementById(&quot;zdjecie&quot;).src = `zdj${numer}_duze.jpg`;<\/code><\/pre>\n<p>Tutaj wykorzystujemy tzw. <strong>template string<\/strong> (backticki <code>`<\/code>), \u017ceby w prosty spos\u00f3b wstawi\u0107 zmienn\u0105 do ci\u0105gu tekstowego. Taka sk\u0142adnia jest bardzo przydatna:<\/p>\n<pre><code class=\"lang-js language-js js\">let imie = &quot;Kasia&quot;;\ndocument.getElementById(&quot;komunikat&quot;).innerHTML = `Witaj, ${imie}!`;<\/code><\/pre>\n<hr \/>\n<h3>3.3. <strong>Zmiana atrybut\u00f3w \u2014 <code>setAttribute()<\/code><\/strong><\/h3>\n<p>Czasami potrzebujesz zmieni\u0107 inne atrybuty, np. <code>alt<\/code>, <code>title<\/code>, <code>href<\/code>, <code>class<\/code>.<\/p>\n<pre><code class=\"lang-js language-js js\">document.getElementById(&quot;zdjecie&quot;).setAttribute(&quot;alt&quot;, &quot;Nowy opis obrazka&quot;);\ndocument.getElementById(&quot;link&quot;).setAttribute(&quot;href&quot;, &quot;https:\/\/nowy-adres.pl&quot;);<\/code><\/pre>\n<hr \/>\n<h3>3.4. <strong>Zmiana klas i styl\u00f3w \u2014 <code>className<\/code>, <code>style<\/code><\/strong><\/h3>\n<p>Zmiana klasy CSS:<\/p>\n<pre><code class=\"lang-js language-js js\">document.getElementById(&quot;komunikat&quot;).className = &quot;blad&quot;;<\/code><\/pre>\n<p>Zmiana stylu bezpo\u015brednio:<\/p>\n<pre><code class=\"lang-js language-js js\">document.getElementById(&quot;komunikat&quot;).style.color = &quot;red&quot;;\ndocument.getElementById(&quot;komunikat&quot;).style.fontWeight = &quot;bold&quot;;<\/code><\/pre>\n<hr \/>\n<h3>3.5. <strong>Przyk\u0142ad praktyczny (do \u0107wiczenia)<\/strong><\/h3>\n<pre><code class=\"lang-html language-html html\">&lt;input type=&quot;number&quot; id=&quot;nr&quot; min=&quot;1&quot; max=&quot;5&quot;&gt;\n&lt;button onclick=&quot;zmienZdjecie()&quot;&gt;Zmie\u0144 zdj\u0119cie&lt;\/button&gt;\n\n&lt;img id=&quot;galeria&quot; src=&quot;zdj1_duze.jpg&quot; \/&gt;<\/code><\/pre>\n<pre><code class=\"lang-js language-js js\">function zmienZdjecie() {\n  let numer = document.getElementById(&quot;nr&quot;).value;\n  document.getElementById(&quot;galeria&quot;).src = `zdj${numer}_duze.jpg`;\n}<\/code><\/pre>\n<hr \/>\n<h3>4. Instrukcje warunkowe<\/h3>\n<p>W JavaScript warunki sprawdzamy np. tak:<\/p>\n<pre><code class=\"lang-js language-js js\">if (warunek) {\n  \/\/ kod je\u015bli prawda\n} else {\n  \/\/ kod je\u015bli fa\u0142sz\n}<\/code><\/pre>\n<p>Przyk\u0142ad:<\/p>\n<pre><code class=\"lang-js language-js js\">if (zaznaczone) {\n  alert(&quot;Dzi\u0119kujemy za zgod\u0119!&quot;);\n} else {\n  alert(&quot;Musisz zaznaczy\u0107 zgod\u0119.&quot;);\n}<\/code><\/pre>\n<h3>5. Obs\u0142uga zdarze\u0144 \u2013 onclick i addEventListener + funkcje<\/h3>\n<ul>\n<li><strong>onclick w HTML:<\/strong><\/li>\n<\/ul>\n<pre><code class=\"lang-html language-html html\">&lt;button onclick=&quot;wyswietl()&quot;&gt;Kliknij&lt;\/button&gt;<\/code><\/pre>\n<ul>\n<li><strong>onclick w JS:<\/strong><\/li>\n<\/ul>\n<pre><code class=\"lang-js language-js js\">document.getElementById(&quot;przycisk&quot;).onclick = wyswietl;<\/code><\/pre>\n<ul>\n<li><strong>addEventListener (zalecane w nowoczesnym kodzie):<\/strong><\/li>\n<\/ul>\n<pre><code class=\"lang-js language-js js\">document.getElementById(&quot;przycisk&quot;).addEventListener(&quot;click&quot;, wyswietl);<\/code><\/pre>\n<hr \/>\n<h2>Przyk\u0142ad praktyczny: Formularz kontaktowy z walidacj\u0105<\/h2>\n<h3>HTML:<\/h3>\n<pre><code class=\"lang-html language-html html\">&lt;input type=&quot;text&quot; id=&quot;imie&quot; placeholder=&quot;Imi\u0119&quot; \/&gt;\n&lt;input type=&quot;text&quot; id=&quot;nazwisko&quot; placeholder=&quot;Nazwisko&quot; \/&gt;\n&lt;textarea id=&quot;zgloszenie&quot; placeholder=&quot;Wpisz swoj\u0105 spraw\u0119&quot;&gt;&lt;\/textarea&gt;\n&lt;input type=&quot;checkbox&quot; id=&quot;regulamin&quot; \/&gt;\n&lt;label for=&quot;regulamin&quot;&gt;Zapozna\u0142em si\u0119 z regulaminem&lt;\/label&gt;\n&lt;button id=&quot;przeslij&quot;&gt;Prze\u015blij&lt;\/button&gt;\n\n&lt;br \/&gt;\n&lt;p id=&quot;komunikat&quot;&gt;&lt;\/p&gt;<\/code><\/pre>\n<h3>JavaScript:<\/h3>\n<pre><code class=\"lang-js language-js js\">document.getElementById(&quot;przeslij&quot;).addEventListener(&quot;click&quot;, function () {\n  let imie = document.getElementById(&quot;imie&quot;).value.toUpperCase();\n  let nazwisko = document.getElementById(&quot;nazwisko&quot;).value.toUpperCase();\n  let zgloszenie = document.getElementById(&quot;zgloszenie&quot;).value;\n  let zaakceptowano = document.getElementById(&quot;regulamin&quot;).checked;\n  let paragraf = document.getElementById(&quot;komunikat&quot;);\n\n  if (!zaakceptowano) {\n    paragraf.innerHTML = &quot;Musisz zapozna\u0107 si\u0119 z regulaminem.&quot;;\n    paragraf.style.color = &quot;red&quot;;\n  } else {\n    paragraf.innerHTML = `${imie} ${nazwisko}&lt;br\/&gt;Tre\u015b\u0107 Twojej sprawy: ${zgloszenie}`;\n    paragraf.style.color = &quot;navy&quot;;\n  }\n});<\/code><\/pre>\n<hr \/>\n<h2>Zadanie z egzaminu INF.03 \u2013 Galeria zdj\u0119\u0107<\/h2>\n<p>U\u017cytkownik mo\u017ce:<\/p>\n<ul>\n<li>Klikn\u0105\u0107 w miniaturk\u0119 zdj\u0119cia \u2192 du\u017ce zdj\u0119cie si\u0119 zmienia<\/li>\n<li>Klikn\u0105\u0107 \u201eNext\u201d \u2192 zdj\u0119cie nast\u0119pne<\/li>\n<li>Klikn\u0105\u0107 \u201ePrev\u201d \u2192 zdj\u0119cie poprzednie<\/li>\n<li>Obraz\u00f3w jest 5, zmieniaj\u0105 si\u0119 cyklicznie (1\u21925, 5\u21921)<\/li>\n<\/ul>\n<h3>JavaScript:<\/h3>\n<pre><code class=\"lang-html language-html html\">&lt;img\n      id=&quot;aktywneZdjecie&quot;\n      src=&quot;zdjecie1.jpg&quot;\n      alt=&quot;Aktywne zdj\u0119cie&quot;\n      width=&quot;400&quot;\n    \/&gt;\n\n    &lt;div id=&quot;miniatury&quot;&gt;\n      &lt;img\n        src=&quot;zdjecie1.jpg&quot;\n        class=&quot;miniatura&quot;\n        data-nr=&quot;1&quot;\n        width=&quot;80&quot;\n        onclick=&quot;wyswietlZdjecie(1)&quot;\n      \/&gt;\n      &lt;img\n        src=&quot;zdjecie2.jpg&quot;\n        class=&quot;miniatura&quot;\n        data-nr=&quot;2&quot;\n        width=&quot;80&quot;\n        onclick=&quot;wyswietlZdjecie(2)&quot;\n      \/&gt;\n      &lt;img\n        src=&quot;zdjecie3.jpg&quot;\n        class=&quot;miniatura&quot;\n        data-nr=&quot;3&quot;\n        width=&quot;80&quot;\n        onclick=&quot;wyswietlZdjecie(3)&quot;\n      \/&gt;\n      &lt;img\n        src=&quot;zdjecie4.jpg&quot;\n        class=&quot;miniatura&quot;\n        data-nr=&quot;4&quot;\n        width=&quot;80&quot;\n        onclick=&quot;wyswietlZdjecie(4)&quot;\n      \/&gt;\n      &lt;img\n        src=&quot;zdjecie5.jpg&quot;\n        class=&quot;miniatura&quot;\n        data-nr=&quot;5&quot;\n        width=&quot;80&quot;\n        onclick=&quot;wyswietlZdjecie(5)&quot;\n      \/&gt;\n    &lt;\/div&gt;\n\n    &lt;button id=&quot;poprzednie&quot; onclick=&quot;poprzednieZdjecie()&quot;&gt;prev&lt;\/button&gt;\n    &lt;button id=&quot;nastepne&quot; onclick=&quot;nastepneZdjecie()&quot;&gt;next&lt;\/button&gt;\n    &lt;script&gt;\n      let numerAktywnegoZdjecia = 1;\n\n      function wyswietlZdjecie(numer) {\n        document.getElementById(&quot;aktywneZdjecie&quot;).src =\n          &quot;zdjecie&quot; + numer + &quot;.jpg&quot;;\n        numerAktywnegoZdjecia = numer;\n      }\n\n      function poprzednieZdjecie() {\n        let nowyNumer = numerAktywnegoZdjecia - 1;\n        if (nowyNumer &lt; 1) {\n          nowyNumer = 5;\n        }\n        wyswietlZdjecie(nowyNumer);\n      }\n\n      function nastepneZdjecie() {\n        let nowyNumer = numerAktywnegoZdjecia + 1;\n        if (nowyNumer &gt; 5) {\n          nowyNumer = 1;\n        }\n        wyswietlZdjecie(nowyNumer);\n      }\n    &lt;\/script&gt;<\/code><\/pre>\n<hr \/>\n<h2>Przydatne funkcje i obiekty<\/h2>\n<ul>\n<li>liczbaDziesietna == &#8222;&#8221; &#8211; jego zadaniem jest sprawdzenie, czy zmienne maj\u0105 t\u0105 sam\u0105 wartosc<\/li>\n<li>liczbaDziesietna === &#8222;&#8221; &#8211; jego zadaniem jest sprawdzenie, czy zmienne maj\u0105 ten sam typ i wartosc<\/li>\n<li>isNaN(a) &#8211; funkcja prawdzaj\u0105ca czy zmienna jest liczb\u0105<\/li>\n<li>Number(a) &#8211; zamienienie zmiennej na liczb\u0119<\/li>\n<li>Math.abs(a)) &#8211; warto\u015b\u0107 bezwzgl\u0119dna z a<\/li>\n<li>Math.floor(a) &#8211; zaokr\u0105glenie liczby w d\u00f3\u0142<\/li>\n<\/ul>\n<h3>Skrypty do opracowania:<\/h3>\n<h6>&#8211; <a href=\"https:\/\/ee-informatyk.pl\/inf03-ee09\/praktyka\/INF.03-06-25.01-SG\">JS1 &#8211; przeliczanie<\/a><\/h6>\n<pre><code>- petla z algorytmem przeliczaj\u0105cym\n```js\nwhile (liczba &gt; 0) {\n        binarny = (liczba % 2) + binarny;\n        licznik++;\n\n        if (licznik % 4 === 0 &amp;&amp; liczba &gt;= 2) {\n          binarny = &quot; &quot; + binarny;\n        }\n\n        liczba = Math.floor(liczba \/ 2);\n      }\n```<\/code><\/pre>\n<h6>&#8211; <a href=\"https:\/\/ee-informatyk.pl\/inf03-ee09\/praktyka\/INF.03-01-25.01-SG\">JS2 &#8211; klasyk<\/a><\/h6>\n<h6>&#8211; <a href=\"https:\/\/ee-informatyk.pl\/inf03-ee09\/praktyka\/INF.03-12-24.01-SG\">JS3 &#8211; klasyk<\/a><\/h6>\n<h6>&#8211; <a href=\"https:\/\/ee-informatyk.pl\/inf03-ee09\/praktyka\/INF.03-01-24.01-SG\">JS4 &#8211; klasyk<\/a><\/h6>\n<h6>&#8211; <a href=\"https:\/\/ee-informatyk.pl\/inf03-ee09\/praktyka\/INF.03-12-24.06-SG\">JS5 &#8211; filtry<\/a><\/h6>\n<h6>&#8211; <a href=\"https:\/\/ee-informatyk.pl\/inf03-ee09\/praktyka\/INF.03-02-24.06-SG\">JS6 &#8211; czat trudne<\/a><\/h6>\n<h6>&#8211; <a href=\"https:\/\/ee-informatyk.pl\/inf03-ee09\/praktyka\/INF.03-06-24.06-SG\">JS7 &#8211; znikajace fromularze<\/a><\/h6>\n<h6>&#8211; <a href=\"https:\/\/ee-informatyk.pl\/inf03-ee09\/praktyka\/INF.03-08-24.06-SG\">JS8 &#8211; rejestracja<\/a><\/h6>\n<h6>&#8211; <a href=\"https:\/\/ee-informatyk.pl\/inf03-ee09\/praktyka\/INF.03-09-24.06-SG\">JS9 &#8211; prostrza galeria<\/a><\/h6>\n<h6>&#8211; [JS]()<\/h6>\n<h6>&#8211; [JS]()<\/h6>\n<h6>&#8211; [JS]()<\/h6>\n<h6>&#8211; [JS]()<\/h6>","protected":false},"excerpt":{"rendered":"<p>Lekcja JavaScript: Praca z formularzami, zdarzeniami i manipulacja DOM Cele lekcji Po zako\u0144czeniu lekcji ucze\u0144: Rozumie jak pobiera\u0107 warto\u015bci z p\u00f3l formularza (np. input type=&#8221;text&#8221; i checkbox). Umie przypisywa\u0107 dane do p\u00f3l tekstowych (innerHTML) i atrybut\u00f3w obraz\u00f3w (src). Stosuje instrukcje warunkowe if, else. Rozr\u00f3\u017cnia i stosuje obs\u0142ug\u0119 zdarze\u0144 onclick i addEventListener. Potrafi dynamicznie tworzy\u0107 ci\u0105gi [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30],"tags":[31],"class_list":["post-135","post","type-post","status-publish","format-standard","hentry","category-ez-inf03","tag-ez-inf03"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tworzenie skrypt\u00f3w w JS - Tomasz Sadowski<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zajecia.tsadowski.pl\/index.php\/2025\/05\/21\/tworzenie-skryptow-w-js\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tworzenie skrypt\u00f3w w JS - Tomasz Sadowski\" \/>\n<meta property=\"og:description\" content=\"Lekcja JavaScript: Praca z formularzami, zdarzeniami i manipulacja DOM Cele lekcji Po zako\u0144czeniu lekcji ucze\u0144: Rozumie jak pobiera\u0107 warto\u015bci z p\u00f3l formularza (np. input type=&#8221;text&#8221; i checkbox). Umie przypisywa\u0107 dane do p\u00f3l tekstowych (innerHTML) i atrybut\u00f3w obraz\u00f3w (src). Stosuje instrukcje warunkowe if, else. Rozr\u00f3\u017cnia i stosuje obs\u0142ug\u0119 zdarze\u0144 onclick i addEventListener. Potrafi dynamicznie tworzy\u0107 ci\u0105gi [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zajecia.tsadowski.pl\/index.php\/2025\/05\/21\/tworzenie-skryptow-w-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Tomasz Sadowski\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-21T01:05:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-06T15:06:48+00:00\" \/>\n<meta name=\"author\" content=\"tomek\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"tomek\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/index.php\\\/2025\\\/05\\\/21\\\/tworzenie-skryptow-w-js\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/index.php\\\/2025\\\/05\\\/21\\\/tworzenie-skryptow-w-js\\\/\"},\"author\":{\"name\":\"tomek\",\"@id\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/#\\\/schema\\\/person\\\/36b24d512631c581c15631842e605c6c\"},\"headline\":\"Tworzenie skrypt\u00f3w w JS\",\"datePublished\":\"2025-05-21T01:05:50+00:00\",\"dateModified\":\"2025-11-06T15:06:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/index.php\\\/2025\\\/05\\\/21\\\/tworzenie-skryptow-w-js\\\/\"},\"wordCount\":1151,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/#\\\/schema\\\/person\\\/36b24d512631c581c15631842e605c6c\"},\"keywords\":[\"EZ INF03\"],\"articleSection\":[\"EZ INF03\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zajecia.tsadowski.pl\\\/index.php\\\/2025\\\/05\\\/21\\\/tworzenie-skryptow-w-js\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/index.php\\\/2025\\\/05\\\/21\\\/tworzenie-skryptow-w-js\\\/\",\"url\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/index.php\\\/2025\\\/05\\\/21\\\/tworzenie-skryptow-w-js\\\/\",\"name\":\"Tworzenie skrypt\u00f3w w JS - Tomasz Sadowski\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/#website\"},\"datePublished\":\"2025-05-21T01:05:50+00:00\",\"dateModified\":\"2025-11-06T15:06:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/index.php\\\/2025\\\/05\\\/21\\\/tworzenie-skryptow-w-js\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zajecia.tsadowski.pl\\\/index.php\\\/2025\\\/05\\\/21\\\/tworzenie-skryptow-w-js\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/index.php\\\/2025\\\/05\\\/21\\\/tworzenie-skryptow-w-js\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tworzenie skrypt\u00f3w w JS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/#website\",\"url\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/\",\"name\":\"Tomasz Sadowski Zaj\u0119cia\",\"description\":\"Zbi&oacute;r zaj\u0119\u0107 prowadzonych przez Tomasza Sadowskiego\",\"publisher\":{\"@id\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/#\\\/schema\\\/person\\\/36b24d512631c581c15631842e605c6c\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/#\\\/schema\\\/person\\\/36b24d512631c581c15631842e605c6c\",\"name\":\"tomek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b8e0f37f81c0ae3da08d93ced4d5638d67055786edc11d3357adce41e3a18825?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b8e0f37f81c0ae3da08d93ced4d5638d67055786edc11d3357adce41e3a18825?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b8e0f37f81c0ae3da08d93ced4d5638d67055786edc11d3357adce41e3a18825?s=96&d=mm&r=g\",\"caption\":\"tomek\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b8e0f37f81c0ae3da08d93ced4d5638d67055786edc11d3357adce41e3a18825?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/zajecia.tsadowski.pl\"],\"url\":\"https:\\\/\\\/zajecia.tsadowski.pl\\\/index.php\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tworzenie skrypt\u00f3w w JS - Tomasz Sadowski","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zajecia.tsadowski.pl\/index.php\/2025\/05\/21\/tworzenie-skryptow-w-js\/","og_locale":"pl_PL","og_type":"article","og_title":"Tworzenie skrypt\u00f3w w JS - Tomasz Sadowski","og_description":"Lekcja JavaScript: Praca z formularzami, zdarzeniami i manipulacja DOM Cele lekcji Po zako\u0144czeniu lekcji ucze\u0144: Rozumie jak pobiera\u0107 warto\u015bci z p\u00f3l formularza (np. input type=&#8221;text&#8221; i checkbox). Umie przypisywa\u0107 dane do p\u00f3l tekstowych (innerHTML) i atrybut\u00f3w obraz\u00f3w (src). Stosuje instrukcje warunkowe if, else. Rozr\u00f3\u017cnia i stosuje obs\u0142ug\u0119 zdarze\u0144 onclick i addEventListener. Potrafi dynamicznie tworzy\u0107 ci\u0105gi [&hellip;]","og_url":"https:\/\/zajecia.tsadowski.pl\/index.php\/2025\/05\/21\/tworzenie-skryptow-w-js\/","og_site_name":"Tomasz Sadowski","article_published_time":"2025-05-21T01:05:50+00:00","article_modified_time":"2025-11-06T15:06:48+00:00","author":"tomek","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"tomek","Szacowany czas czytania":"8 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zajecia.tsadowski.pl\/index.php\/2025\/05\/21\/tworzenie-skryptow-w-js\/#article","isPartOf":{"@id":"https:\/\/zajecia.tsadowski.pl\/index.php\/2025\/05\/21\/tworzenie-skryptow-w-js\/"},"author":{"name":"tomek","@id":"https:\/\/zajecia.tsadowski.pl\/#\/schema\/person\/36b24d512631c581c15631842e605c6c"},"headline":"Tworzenie skrypt\u00f3w w JS","datePublished":"2025-05-21T01:05:50+00:00","dateModified":"2025-11-06T15:06:48+00:00","mainEntityOfPage":{"@id":"https:\/\/zajecia.tsadowski.pl\/index.php\/2025\/05\/21\/tworzenie-skryptow-w-js\/"},"wordCount":1151,"commentCount":0,"publisher":{"@id":"https:\/\/zajecia.tsadowski.pl\/#\/schema\/person\/36b24d512631c581c15631842e605c6c"},"keywords":["EZ INF03"],"articleSection":["EZ INF03"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zajecia.tsadowski.pl\/index.php\/2025\/05\/21\/tworzenie-skryptow-w-js\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zajecia.tsadowski.pl\/index.php\/2025\/05\/21\/tworzenie-skryptow-w-js\/","url":"https:\/\/zajecia.tsadowski.pl\/index.php\/2025\/05\/21\/tworzenie-skryptow-w-js\/","name":"Tworzenie skrypt\u00f3w w JS - Tomasz Sadowski","isPartOf":{"@id":"https:\/\/zajecia.tsadowski.pl\/#website"},"datePublished":"2025-05-21T01:05:50+00:00","dateModified":"2025-11-06T15:06:48+00:00","breadcrumb":{"@id":"https:\/\/zajecia.tsadowski.pl\/index.php\/2025\/05\/21\/tworzenie-skryptow-w-js\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zajecia.tsadowski.pl\/index.php\/2025\/05\/21\/tworzenie-skryptow-w-js\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zajecia.tsadowski.pl\/index.php\/2025\/05\/21\/tworzenie-skryptow-w-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/zajecia.tsadowski.pl\/"},{"@type":"ListItem","position":2,"name":"Tworzenie skrypt\u00f3w w JS"}]},{"@type":"WebSite","@id":"https:\/\/zajecia.tsadowski.pl\/#website","url":"https:\/\/zajecia.tsadowski.pl\/","name":"Tomasz Sadowski Zaj\u0119cia","description":"Zbi&oacute;r zaj\u0119\u0107 prowadzonych przez Tomasza Sadowskiego","publisher":{"@id":"https:\/\/zajecia.tsadowski.pl\/#\/schema\/person\/36b24d512631c581c15631842e605c6c"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zajecia.tsadowski.pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":["Person","Organization"],"@id":"https:\/\/zajecia.tsadowski.pl\/#\/schema\/person\/36b24d512631c581c15631842e605c6c","name":"tomek","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/secure.gravatar.com\/avatar\/b8e0f37f81c0ae3da08d93ced4d5638d67055786edc11d3357adce41e3a18825?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b8e0f37f81c0ae3da08d93ced4d5638d67055786edc11d3357adce41e3a18825?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b8e0f37f81c0ae3da08d93ced4d5638d67055786edc11d3357adce41e3a18825?s=96&d=mm&r=g","caption":"tomek"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/b8e0f37f81c0ae3da08d93ced4d5638d67055786edc11d3357adce41e3a18825?s=96&d=mm&r=g"},"sameAs":["https:\/\/zajecia.tsadowski.pl"],"url":"https:\/\/zajecia.tsadowski.pl\/index.php\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/zajecia.tsadowski.pl\/index.php\/wp-json\/wp\/v2\/posts\/135","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zajecia.tsadowski.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zajecia.tsadowski.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zajecia.tsadowski.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zajecia.tsadowski.pl\/index.php\/wp-json\/wp\/v2\/comments?post=135"}],"version-history":[{"count":8,"href":"https:\/\/zajecia.tsadowski.pl\/index.php\/wp-json\/wp\/v2\/posts\/135\/revisions"}],"predecessor-version":[{"id":167,"href":"https:\/\/zajecia.tsadowski.pl\/index.php\/wp-json\/wp\/v2\/posts\/135\/revisions\/167"}],"wp:attachment":[{"href":"https:\/\/zajecia.tsadowski.pl\/index.php\/wp-json\/wp\/v2\/media?parent=135"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zajecia.tsadowski.pl\/index.php\/wp-json\/wp\/v2\/categories?post=135"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zajecia.tsadowski.pl\/index.php\/wp-json\/wp\/v2\/tags?post=135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}