1 / 51

WEB Technológiák

WEB Technológiák. Dr. Pance Miklós – Kolcza Gábor Miskolc i Egyetem. JAVASCRIPT. JAVASRIPT története, kialakulása JAVASCRIPT használata Változók, kifejezések, operátorok vezérlési szerkezetek elágazások ciklusok speciális JAVASCRIPT elemek Függvények (matematikai és dátumfüggvények)

zonta
Download Presentation

WEB Technológiák

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. WEB Technológiák Dr. Pance Miklós–Kolcza Gábor Miskolci Egyetem

  2. JAVASCRIPT • JAVASRIPT története, kialakulása • JAVASCRIPT használata • Változók, kifejezések, operátorok • vezérlési szerkezetek • elágazások • ciklusok • speciális JAVASCRIPT elemek • Függvények (matematikai és dátumfüggvények) • Stíluslapok CSS • Dokumentum objektum modell

  3. JAVASRIPT nyelv, története, kialakulása • a HTML dokumentumok kezdetben statikusak voltak • nem lehetett eseményt kiváltani • JavaScript ezt azonban lehetővé teszi • Netscape fejlesztette ki • JavaScript egy parancsnyelv • JavaScript egy interpretált nyelv (forrást a futtató közeg futás közben értelmezi és hajtja végre ) • az előnye: egyszerűbb a fejlesztés és minden olyan gépen fog futni, ahol az interpreter megtalálható • hátránya: programok lassabban futnak, mivel futás közben értelmeződnek

  4. JAVASCRIPT haználata • <SCRIPT> </SCRIPT> tag-ek között <SCRIPT [language=”JavaScript1.3” type=”text/javascript1.3”]> script forrásszöveg </SCRIPT> • language és a type paraméterrel a JavaScript verziószámát adhatjuk meg • fejrészben és törzsrészben is használható • eseménykezelőként más HTML tag-ek paramétereként (erről egy későbbi részben lesz majd részletesen szó)

  5. JAVASCRIPT változók I • A változónevek választásánál szabályok: • a változónevekben az angol abc kis- és nagybetűit, a 0-9 számjegyeket és az ”_” karaktert használhatjuk • a változónevekben nem szerepelhet se szóköz se írásjel (például: ”.”, ”?”, ”!”) • a változónév első karaktere nem lehet szám • a változónév hossza nem lehet hosszabb, mint egy sor • a változónevekben a kis- és nagybetűket különbözőnek tekintjük • változó deklarálása: • var a=5; • b=12;

  6. JAVASCRIPT változók II • változókhatóköre: • általános változók (globális): az egész programra kiterjed a hatókörük, tehát bárhol lehet hivatkozni rájuk, vagy az értéküket bármelyik függvényben meg lehet változtatni • helyi változók (lokális): hatókörük csak egyetlen programra terjed ki, csak abban a függvényben lehet használni, melyben létrehozták őket • Helyi változó létrehozásához mindig használni kell a ”var” kulcsszót. A JavaScript akkor is helyi változót hoz létre, ha az adott néven már létezik általános változó • A JavaScript gyengén típusos nyelv (változó típusa gyengén kötött )

  7. JAVASCRIPT operátorok I • JAVASCRIPT operátorok típusai: • aritmetikai • logikai • összehasonlító • aritmetikai • egyoperandusu aritmetikai operátorok • ++ :változó értéket lehet növelni eggyel • -- : változó értékét lehet csökkenteni eggyel • kétoperandusu operátorok • +, -, /, * • +=, -=, /=, *= : rendre bal oldal növelése csökkentése, szorzása, osztása jobb oldallal

  8. JAVASCRIPT operátorok II • logikai • && : logikai és • || : logikai vagy • ! : logikai nem • összehasonlító • == egyenlőség vizsgálata • != nem egyenlőség vizsgálata • <= kisebb vagy egyenlő • >= nagyobb vagy egyenlő • < kisebb • > nagyobb

  9. JAVASCRIPT utasítások • JavaScript-ben egyszerűsége miatt kevés az utasítás • break: • a switch, while vagy a for vezérlési szerkezetben használható; • hatására a program futása a ciklus utáni első utasítás végrehajtásával folytatódik • continue: • cikluson belül használható • az adott ciklus hátralévő utasításait átugorja, és ismét a ciklus elejére kerül a vezérlés • function: függvények eljárások deklarálására használható; • var: változók deklarálására használható kulcsszó

  10. JAVASCRIPT vezérlési szerkezetek • Elágazások • IF • SWITCH • Ciklusok • elöltesztelő: • FOR • WHILE • hátultesztelő • DO… WHILE

  11. Elágazások • Elágazások • IF • SWITCH • IF if ( nev==”Józsi” ) { window.alert(”Helló Józsi! ”); nev=””; } else { window.alert(”Te nem vagy Józsi! ”); } • SWITCH • A mintának megfelelően hajt végre utasításokat

  12. SWITCH elágazás nev = prompt("Add meg a neved!",""); switch (nev) { case "Józsi": window.alert("Helló "+nev+"!"); break; case "Géza": window.alert("Helló "+nev+"!"); break; case "Béla": window.alert("Helló "+nev+"!"); break; default: window.alert("Helló még nem ismerlek!"); }

  13. Ciklusok I • egy meghatározott utasítássort hajtathatunk végre bármennyiszer (végtelen ciklus) a programmal • i, j, k • FOR ciklus • kezdőérték: i=1; a ciklusváltózónak értéket adunk hogy ”honnan” induljon • végérték: i<=10 addig hajtja végre a ”{}” zárójelek közötti utasítást, amíg ez a kifejezés igaz • növekménnyel történő módosulás: ebben az esetben i++ for (i=1;i<=10;i++) { document.write(i+"<br>"); }

  14. Ciklusok II • WHILE ciklus (elöltesztelő) • ciklus addig fut, amíg a while utasítás utáni kifejezés értéke igaz i=20; while (i >= 0) { document.write(i+"<br>"); i-=2; } • DO.. WHILE ciklus(hátultesztelő) i=20; <!– végtelen ciklus vagyok --> do { document.write(i+"<br>"); i+=2; } while (i >=0);

  15. Speciális JAVASCRIPT elemek • null • speciális null értéket képviseli • egyes függvények visszatérési értéke lehet hiba esetén • nem definiált változók értéke szintén null • this • a hívó, az aktuális objektumot reprezentálja • eseménykezelő paraméterekben hasznos • undefined • a változó amire hivatkozunk nincs deklarálva • nem hibaüzenetet kapunk, hanem a böngésző az undefined felirattal helyettesíti a változó értékét • NaN (Not A Number) • amennyiben az argumentum nem értelmezhető számként

  16. Függvények bevezetés • Gyakran ismétlődő utasítássorozat • Egységként kezelhetjük • Átláthatóvá teszi a programot

  17. Függvények I <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head> <title>Helló</title> <script language="JavaScript1.3" type="text/javascript1.3"> function hello(nev) { window.alert("Helló "+nev+"!"); } </script></head> <body> <script language="JavaScript1.3" type="text/javascript1.3"> nev = prompt("Add meg a neved!",""); hello(nev);  </script></body></html>

  18. Függvények II <html><head> <title>Regisztrációs oldal</title> <script language="Javascript"> function ellenorzes() { if (document.lap.fnev.value.length < 4) { alert("Nem adta meg a nevét"); document.lap.fpasswd.value=""; document.lap.fp.value=""; return false; } else { if (document.lap.fcim.value=="") { //cím mező ellenőrzése alert("Nem adta meg a címét"); document.lap.fpasswd.value=""; document.lap.fp.value=""; return false; }

  19. Függvények III else { if (document.lap.femail.value.length < 5) { //e-mail ellenőrzése alert("Nem elég hosszú az e-mail cím!"); document.lap.fpasswd.value=""; document.lap.fp.value=""; return false; } else { ///email ell meg mindig van_kukac=0; for (x=0; x<document.lap.femail.value.length; x++) { if (document.lap.femail.value.charAt(x)=='@') { van_kukac=1; break; } } if (van_kukac != 1) { alert("Nincs benne kukac!"); document.lap.fpasswd.value=""; document.lap.fp.value=""; return false; }

  20. Függvények IV if (document.lap.felhnev.value.length < 4) { //felhasználónév 4 kar alert("Legalább 4 karakter a felhasználónév!"); document.lap.fpasswd.value=""; document.lap.fp.value=""; return false; } else { if (document.lap.fpasswd.value=="") { //jelszo mező ellenőrzése alert("Nem adta meg a jelszavát"); document.lap.fpasswd.value=""; document.lap.fp.value=""; return false; }

  21. Függvények V else { if (document.lap.fpasswd.value != document.lap.fp.value) { alert("Nem egyezik meg a két jelszava!"); document.lap.fpasswd.value=""; document.lap.fp.value=""; return false; } else { return true; } }}}}}//else }//fgv </script> </head><body><center> <form name="lap" onSubmit="return ellenorzes()" action="reg1.php" > <table> <caption><b><font face="arial">Regisztráció</font></b></caption> <tr><th><font face="arial">név:</font><th> <input type="text" name="fnev"> <tr><th><font face="arial">cím: </font><th><input type="text" name="fcim"> <tr><th><font face="arial">e-mail cím: </font><th><input type="text" name="femail"><th> <tr><th><font face="arial">felhasználónév: </font><th><input type="text" name="felhnev"> <tr><th><font face="arial">jelszó: </font><th><input type="password" name="fpasswd"> <tr><th><font face="arial">jelszó ismétlése: </font><th><input type="password" name="fp"> <tr><th><th><input type="reset" value=" Törlés "><input type="submit" value=" Mehet "> </table></form><center></body></html>

  22. Matematikai függvények • Beépített függvények • Megkönnyítik a felhasználó munkáját • Math.round(): a számot a legközelebbi egész számra kerekíti • random(): egy véletlen számot ad vissza 0 és 1 között <html><head> <title>random</title> <script language="JavaScript1.3" type="text/javascript1.3"> function rand() { return Math.round(Math.random() * 100); } </script></head><body> <script language="JavaScript1.3" type="text/javascript1.3"> document.write(rand()); </script></body></html>

  23. Dátumfüggvények I • a ”Date” objektum metódusain keresztül kezelhetjük • getDate(): napot kérdezi le • getMonth(): hónapot kérdezi le • getYear(): az évet kérdezi le • getTime: időt és a dátumot kérdezi le

  24. Dátumfüggvények II honapok[11]="November"; honapok[12]="December"; var time=new Date(); var lmonth=honapok[time.getMonth() + 1]; var datum=time.getDate(); var ev=time.getYear(); if (ev < 2000) ev = ev + 1900; document.write("<center>" + ev); document.write(", " + lmonth + " " + datum + "</center>"); </SCRIPT> </font> </body></html> <html><head><title>datum</title></head> <body text="#52C6FF" bgcolor="#000000"> <font size="4"> <SCRIPT LANGUAGE="JavaScript1.2">  var honapok=new Array(13); honapok[1]="Január"; honapok[2]="Február"; honapok[3]="Március"; honapok[4]="Április"; honapok[5]="Május"; honapok[6]="Június"; honapok[7]="Július"; honapok[8]="Augusztus"; honapok[9]="Szeptember"; honapok[10]="Október";

  25. DHTML-Dinamikus HTML oldalak I • Mozgás megvalósítása <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head> <title>képek mozgatása</title> <script language="JavaScript1.3" type="text/javascript1.3"> var poz1=-100; var poz2=-100; var poz3=-100; var sebesseg1 = Math.floor(Math.random()*10)+2; var sebesseg2 = Math.floor(Math.random()*10)+2; var sebesseg3 = Math.floor(Math.random()*10)+2;

  26. DHTML-Dinamikus HTML oldalak II function next() { poz1+=sebesseg1; poz2+=sebesseg2; poz3+=sebesseg3; if (poz1 > 1000) poz1= -100; if (poz2 > 1000) poz2= -100; if (poz3 > 1000) poz3= -100; document.getElementById("kep1").style.left=poz1; document.getElementById("kep2").style.left=poz2; document.getElementById("kep3").style.left=poz3; window.setTimeout("next();",10); } </script></head>

  27. DHTML-Dinamikus HTML oldalak III <body onLoad="next();"> <div ID="kep1" STYLE="position:absolute; left:0; top:100; width:100; height:100; visibility:show"> <img src="1.jpg" width=100 height=100> </div> <div ID="kep2" STYLE="position:absolute; left:0; top:200; width:100; height:100; visibility:show"> <img src="1.jpg" width=100 height=100> </div> <div ID="kep3" STYLE="position:absolute; left:0; top:300; width:100; height:100; visibility:show"> <img src="1.jpg" width=100 height=100> </div> </body> </html>

  28. DHTML-Dinamikus HTML oldalak III • Számok összeadása • <html><head><title>select, műveletek végrehajtása!</title> • <script language="JavaScript"> • function szamol() { • with (document.lap) • eredmeny.value = eval((lista1.selectedIndex+1)+ • (muvelet.options[muvelet.selectedIndex].text)+(lista2.selectedIndex+1)); • } • </script></head> • <body> <center><br><br><br> • <form name="lap"> • <select name=lista1 onChange="szamol()"> • <option selected>egy</option><option>kettő</option><option>három</option> <option>négy</option><option>öt</option><option>hat</option><option>hét</option> </select> • <select name=muvelet onChange="szamol()"> • <option selected>+</option><option>-</option><option>/</option> <option> * </option> <select name=lista2 onChange="szamol()"> • <option selected>egy</option><option>kettő</option><option>három</option> <option>négy</option><option>öt</option><option>hat</option><option>hét</option> </select> • <input type=text name=eredmeny size=7> • </form> • </center> </body></html>

  29. DHTML-Dinamikus HTML oldalak IV • Szövegdoboz tartalmának megváltoztatása <html> <head> <title>A textboxban lévő számot csökkent, növeli.</title></head> <body> <center> <form name="lap"> <table> <tr><th height=50></th></tr> <tr><th><input type=button value=" + " size=5 onMouseOver= "document.lap.szam.value++"></th> <th><input type=button value=" - " size=5 onMouseOver ="document.lap.szam.value--"><br></th></tr>

  30. DHTML-Dinamikus HTML oldalak V <tr><th height=30></th></tr> <tr><th colspan=2><input type=text name="szam" size=10 onMouseOver="document.lap.szam.value=1"></th></tr> </table> </form> </center> </body></html>

  31. Stíluslapok (CSS) használata I • a dokumentumszerkezet megváltoztatása nélkül lehet befolyásolni a megjelenést és az elrendezést • <STYLE> </STYLE> • fejrészbe kerül, mivel nem képez semmiféle kimenetet • szabályok halmaza <styleTYPE=”text / css” > B, H2, H4 {color: green; font-size: 13px; text-align: center;} </style>

  32. Stíluslapok (CSS) használata II • Szabályok részei: • a HTML elem neve, melyre a szabály vonatkozik • egy vagy több tulajdonságnévből (ez itt a color) • a tulajdonsághoz tartozó értékből (green) • Egyedi szabályok készítése: <styleTYPE=”text / css” > #stilus1 {color: green;} </style> <p ID=”stilus1”>Ez az első stíluslapom</p>

  33. Stíluslapok (CSS) használata III • Stíluslapokkal befolyásolható tulajdonságok: • Térköz • Színek • Betűtípusok • Margók, keretek

  34. Stíluslapok (CSS) használata III • Szöveg igazítása • letter-spacing: betűk közötti távolság megadása • text-decoration: vonalakat helyezhetünk el a szöveg alatt, felett, vagy a szöveg belsejében • text-align: a szöveg igazítását határozhatjuk meg vele • vertical-align: feljebb, vagy lejjebb tolhatjuk az elemeket a vele egy sorban elhelyezett elemekhez képes • text-transform: kis és nagybetűk használatát szabályozza • line-height: az aktuális sor teteje és a következő sor teteje közötti távolságot állíthatjuk be segítségével • háttérszíneket és háttérképeket • color: egy elem szövegének színét határozhatjuk meg vele • background-color: egy elem háttérszínét határozza meg • background-image: az elem hátteréül használt háttérkép kiválasztására szolgál • background: gyors megoldást kínál az előbb felsorolt háttérbeállítások meghatározására

  35. Stíluslapok (CSS) használata IV • betűtípusok • font-style: a betűkészlet stílusát határozza meg • font-family: a szöveg betűtípusát határozhatjuk meg segítségével • font-variant: a normal érték a kisbetűket a hagyományos módon, a small –caps érték pedig kiskapitális formájában jeleníti meg • font-size: a betűkészlet pontmérete • font-weight: a szöveg vastagságát határozhatjuk meg • általános elrendezés • margin: ugyanazt azt értéket rendeli mind a négy margószélességhez • width: egy elem szélességét határozza meg • height: egy elem magasságát határozza meg • float: egy elem szöveggel történő körbefuttatására szolgál • clear: ezzel a tulajdonsággal fejezhetjük be az elemek szövegekkel történő körbefuttatását

  36. Stíluslapok (CSS) használata V • Mértékegységek használata stíluslapoknál • px: képpont; a számítógép kijelzőjének és más eszközöknek a legkisebb megcímezhető egységei • pt: pont; a betűkészletek méretének szabványos mértékegysége • ex: az x karakter hozzávetőleges magassága az adott betűkészletben • Külső stíluslapok használata • Dokumentum átláthatósága érdekében • <link REL=STYLESHEET TYPE=”text/css” HREF=”index.css”>

  37. Dokumentum Objektum Modell (DOM) I • JavaScript nagy előnye a HTML-lel szemben, hogy a programokkal a webdokumentumot és a tartalmat egyaránt módosíthatjuk • a JavaScript a böngészővel és a dokumentumokkal való együttműködés érdekében a gyermek – szülő kapcsolatban álló objektumok rendszerét a DOM-ot használja • hierarchikus struktúrát alkotnak • egy dokumentum teljes tartalmát és minden összetevőjét magukban foglalják • DOM története: • Netscape 2.0 • kezdetben az egyes objektumok nem egyeztek meg böngészőnként • ma már HTML dokumentum minden részéhez kapcsol valamilyen objektumot

  38. Dokumentum Objektum Modell (DOM) II

  39. Dokumentum Objektum Modell (DOM) III • objektumok: • metódusok • tulajdonságok • document.lap.fnev.value.length • objektumrendszer fő kiinduló pontja a window objektum • window képviseli a böngészőablakot • window.alert() • window.prompt() • document objektum egy webdokumentumot (weboldalt) jelképez • document.open; document.close

  40. DOCUMENT objektum I • document objektum tulajdonságai: • document.url: a weboldal URL-jét határozza meg; (nem módosíthatjuk) • document.title: az aktuális oldal címét adja meg, melyet a <TITLE> elem határoz meg • document.referrer: az érkezése előtti oldal címét tartalmazza • document.lastModified: a dokumentum utolsó módosításának a dátuma • document.cookie: segítségével a sütiket (cookie) kezelhetjük; sütit elhelyezhetünk, vagy a meglévőt olvashatjuk • document.bgColor, document.fgColor: ez a két tulajdonság a dokumentum háttérszínét és szövegszínét adja meg; • document.linkColor, document.alinkColor, document.vlinkColor: a linkeknek a színét lehet meghatározni velük

  41. DOCUMENT objektum II <html> <head> <title>Egy új ablakot lök ki.</title> <script language="JavaScript"> function ablak() { newwin=open("segedlet.html","win","location=0,width=320,height=200"); } </script> </head> <body bgcolor="#FFFFFF"><center> Ha megnyomod a gombot akkor kinyílik egy új ablak!<br><br> <input type=button value="nyomj meg" onclick="ablak()"> </center></body></html>

  42. HISTORY objektum • látogatott oldalak URL-jével kapcsolatos adatokat lehet megszerezni • előre vagy hátra lapozhatunk az előzménylistában lévő oldalak között • history.length: az előzmény lista hosszát adja meg (egyetlen tulajdonsága) • history objektum metódusai: • history.go(): URL-t nyit meg az előzménylistából egy megadott szám alapján; a zárójelben pozitív és negatív számot egyaránt meg lehet adni • history.back(): az előzménylista előző URL-jét tölti vissza • history.forward():az előzménylista következő URL-jét tölti vissza

  43. LOCATION objektum I • Segítségével URL-t lehet betölteni az aktuális ablakba • location objektum tulajdonságai: • location.href: az ablakban lévő oldal url-jét tartalmazza • location.protocol: az URL protokollt meghatározó rész, • location.hostname: az URL-nek a gépnevet meghatározó része • location.port: az URL kapuszámot meghatározó rész • location.pathname: az URL útvonalat és fájlnevet meghatározó rész • location.search: az URL lekérdezési része, ha van ilyen • location.hash: az URL-ben lévő hivatkozás neve, ha van ilyen

  44. LOCATION objektum II <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head> <title>location objektum</title></head> <body>  <center><br><br>  <input type="submit" value="borospince" onClick="window.location.href='http://www.borospince.hu'"> <input type="submit" value="alert" onClick="alert('Ez nem nyert!')">  </center> </body> </html>

  45. Események kezelése • események: • billentyűzet által kiváltott • egér által kiváltott • eseménymodell: • event (esemény) objektum • Evenet Capturing (esemény átvétel) • Böngészőnként az event objektum elérhető tulajdonságai eltérnek <form name="lap"> <input type="text" size=30 onMouseDown="alert('Lenyomtad a gombot az objektum felett!')"> </form>

  46. EVENT objektum I.E. által támogatott tulajdonságai • event.button: lenyomott egér gomb; bal oldali gomb – 1; jobb gomb –2 • event.clientX: az esemény bekövetkeztének X koordinátája képpontban • event.clientY: az esemény bekövetkeztének Y koordinátája képpontban • event.altkey: az Alt billentyűt az esemény során lenyomták-e vagy sem; • event.ctrlkey: a Ctrl billentyűt lenyomták-e az esemény során; • event.shiftkey: a Shift billentyűt lenyomták-e az esemény során; • event.keyCode: a lenyomott billentyű kódját adja Unicode formátumban • event.srcElement: az objektumot adja meg, ahol az esemény bekövetkezett

  47. EVENT objektum Netscape által támogatott tulajdonságai • event.modifiers: azt jelzi, hogy az esemény során melyik módosítóbillentyűt (Shift, Alt, Ctrl) nyomták le; • event.pageX: az esemény bekövetkeztének X koordinátája képpontban • event.pageY: az esemény bekövetkeztének Y koordinátája képpontban • event.which: a lenyomott billentyű vagy egérgomb kódja, Unicode formátumban • event.target: az objektumot adja meg, ahol az esemény bekövetkezett

  48. Egér eseményei • onMouseOver: hivatkozás, vagy objektum felé kerül az egér • onMouseOut: hivatkozás, vagy objektumról elkerül az egér • onMouseMove: az egérmutató mozog egy hivatkozás, vagy objektum felett • onClick: az egér az objektum, vagy hivatkozás felett áll és kattint • onDbClick: az egér az objektum, vagy hivatkozás felett áll és duplán kattint • onMouseDown: az egérgomb lenyomásakor következik be az esemény • onMouseUp: az egérgomb felengedésekor következik be az esemény <form name="lap"> <input type="text" onDblClick="alert(Kettőt kattintottál az objektum felett! '+event.type);"> </form>

  49. Billentyűzet eseményei • onKeyPress: a billentyűzet megnyomását és felengedését érzékeli • onKeyUp: a billentyű lenyomásakor következik be az esemény • onKeyDown: a billentyű felengedésekor következik be az esemény • Lenyomott billentyű ASCII kódja: • Internet Explorerben pedig az event.keyCode • Netscape-ben az event.which tulajdonság

  50. További események I • onLoad: az esemény akkor következik be, amikor az aktuális oldal letöltődik a kiszolgálóról <body onLoad="alert('Az oldal betöltődött!');"> • onUnload: az esemény akkor következik be, amikor a felhasználó bezárja az ablakot, vagy új oldalt tölt be <body onUnload="alert('Viszont látásra!');"> <input type="submit" value="borospince" onClick="window.location.href = 'http://www.borospince.hu'"> </body> • onSubmit: a felhasználó a submit gombot megnyomja • onFocus:text, textarea, password, vagy select objektumhoz kerül a fókusz (kijelölés) • onBlur:a fókusz (kijelölés) elkerül egy objektumról

More Related