Űrlap események. Űrlap események További információ az eseménnyel kapcsolatban

07.09.2020 hírek

Az utolsó témakörben a billentyűk lenyomásakor bekövetkező eseményeket vettük figyelembe. Ebben a témában más formai eseményeket is megvizsgálunk. Beleértve az űrlap elküldését a szervernek.

Elem a fókuszban

Amikor az űrlapelem fókuszba kerül, a fókusz esemény aktiválódik, és amikor az űrlapelem életlen lesz, az elhomályosítási esemény aktiválódik. Hozzunk létre egy beviteli mezőt, és nyomtassuk ki a szöveget a konzolra, amikor fókuszba kerül, és amikor kilép a fókuszból:

HTML kód:

Nincs értelme ezeket az eseményeket egy elem stílusának megváltoztatására használni. Erre a CSS-ben van egy fókuszált pszeudoosztály.

Érték megadása

bemeneti esemény akkor fordul elő, amikor a felhasználó szöveget ír be egy beviteli mezőbe. Akkor aktiválódik, amikor minden egyes karaktert hozzáadunk vagy eltávolítunk, és amikor szöveget másolunk egy beviteli mezőbe. Egyes böngészőkben szokatlanul működik: minden alkalommal, amikor beírunk egy karaktert, egy elmosódási esemény indul, majd a bemeneti eseménykezelő végrehajtásra kerül, majd a fókusz esemény. Ha nincsenek fókusz- és elmosódás-kezelők, akkor ez nem probléma. De ha igen, akkor minden karakter hozzáadásakor működni fognak.

Adjon hozzá egy másik címkét az oldalhoz és megjeleníti az értékét szöveg beírásakor:

HTML kód:

JavaScript:

28
29
30
31
32

var newv = document.getElementById("új_érték"); newv.onchange = function () ( console.log("Az érték a következőre módosult: "+newv.value); );

Űrlap beküldése

A küldés esemény akkor aktiválódik, amikor az űrlap elküldésre kerül a kiszolgálónak. A felhasználó által az űrlapon megadott adatok érvényesítésére szolgál. A kezelőben ellenőrzik az űrlapelemek értékeit, és ha az értékeket hibásan adják meg, akkor az űrlap törlődik. Ez általában egy üzenetet eredményez, amely jelzi, hogy mit kell javítani.

Helyezze el a létrehozott címkéket az űrlapon, és add hozzá az űrlap elküldése gombot:

HTML kód:

Az előző példákban az űrlapelemeket már megtaláltuk, így a kezelő nem keres újra.

Ha az űrlap helyesen van kitöltve, azaz minden mezőben legalább két karakter szerepel, akkor a böngésző megpróbálja futtatni az action attribútumban megadott fájlt, és hiba történik, mert nincs ilyen fájl. De ebben nincs kockázat, így nem kell félni a script működésének ellenőrzésétől. Ha az egyik mezőben kettőnél kevesebb karakter van beírva, egy üzenet jelenik meg, és a küldés megszakad. Ha sok csekk van, akkor minden csekknél megjelenítheti saját üzenetét, és törölheti az űrlap beküldését.

Az bemenet esemény akkor aktiválódik, amikor egy elem értékét interaktív vezérlőelemek létrehozására használják webalapú űrlapokhoz, hogy adatokat fogadjanak el a felhasználótól; a bemeneti adatok és vezérlő widgetek széles választéka áll rendelkezésre, az eszköztől és a felhasználói ügynöktől függően. "> , elem egy vezérlőelemet jelent, amely opciók menüjét> biztosítja ...

Egy példa, amelyben megvizsgáljuk, hogyan használhatjuk a változási eseményt a kiválasztott bemeneti elem értékének lekéréséhez, amelynek típusa megegyezik a rádióval:

ablakok Linux Mac operációs rendszer ...

jQuery – Esemény kiválasztása (kiválasztás)

A kijelölési eseményt a böngésző indítja el, amikor a type="text" vagy textarea beviteli elemekben lévő felhasználó szöveget választ ki.

$("#target").select(function() ( console.log("Elhívott eseménykezelő kiválasztása"); ));

jQuery – Űrlap beküldési esemény (beküldés)

A küldési esemény akkor indul el egy elemen, amikor a felhasználó megpróbálja elküldeni az űrlapot. Ez az esemény csak űrlapelemekhez adható hozzá.

Példa a küldési esemény használatára:

...
...

Automatikus felhívás az űrlap beküldésére:

$("#feedback").submit(); $("#feedback").trigger("submit");

jQuery – esemény görgetése (görgetés)

A jQuery a görgetési eseményt használja a görgetés állapotának nyomon követésére.

Például csatoljunk egy függvényt az oldalgörgetési eseményhez, amely megjelenít egy elemet a scrollup osztályával, ha a görgetés értéke nagyobb, mint 200 képpont, és elrejti, ha a görgetés értéke kisebb ennél az értéknél.

// függvény rövidítés $(window).scroll(function() ( // mi történik az oldal görgetésekor... if ($(this).scrollTop()>200) ( $(.scrollup").fadeIn( ) ; ) else ( $(.scrollup").fadeOut(); ) ));

jQuery – Ablak átméretezési esemény (átméretezés)

A böngészőablak változási eseményének figyeléséhez használja az átméretezést:

Például hozzunk létre egy kezelőt, amely a böngészőablak megváltozásakor az oldal végén megjeleníti a szélességét és magasságát:

$(window).resize(function() ( $("body").append("

Szélesség x Magasság = " + window.innerWidth + " x " + window.innerHeight + "

"); });

jQuery – Egy esemény alapértelmezett viselkedésének felülbírálása

A HTML egyes elemei normál viselkedésűek. Például, amikor a felhasználó egy hivatkozásra kattint, a href attribútumban megadott címre lép. Ha nincs szüksége erre a műveletre, törölheti azt. Az alapértelmezett viselkedés megszakításához hívja meg az eseményobjektum preventDefault metódusát az eseménykezelőben.

Például írjuk felül az oldalon lévő összes olyan hivatkozás alapértelmezett viselkedését, amelyeknek szolgáltatási osztálya van:

$("a.service").on("click",function(e)( //megszakítja az alapértelmezett böngészőműveletet e.preventDefault(); //a hivatkozás által végrehajtott műveletek... ));

Mi az úszó és hogyan lehet megállítani

A szokásos műveletek törlése mellett az eseménymechanizmusnak van olyan is, mint a buborékolás. Ez abban rejlik, hogy amikor a böngésző eseményt generál, akkor ezt nem csak az aktuális elemre (célra), hanem annak minden leszármazottjára is megteszi, beleértve a szülőt is:

Aktuális elem (cél) -> cél szülője -> nagyszülő -> ... -> dokumentum -> ablak

A jQueryben vannak olyan forgatókönyvek, amikor a bemutatott lánc egyes elemeihez ugyanaz a kezelő tartozik ehhez az eseményhez, amelyet nem kell végrehajtani. És hogy ez az esemény ne terjedjen át erre az elemre, le kell állítani. Ehhez a kívánt elem kezelőjében meg kell hívni az eseményobjektum stopPropagation metódust. A metódus meghívása után az esemény leáll, és nem buborékolódik fel.

Például szükséges, hogy amikor a kurzort egy osztályjellel ellátott elemre visszük, annak tartalma narancssárga színűvé váljon.

Egy kis szöveg... töredék......folytatás...
...

Ebben az esetben, ha a stopPropagation metódus nincs megadva, akkor amikor a kurzort a mark osztályú span elemre visszük, akkor ez az esemény nem csak rá, hanem minden szülőelemére is be fog következni. És ez ebben a példában ahhoz a tényhez vezet, hogy nem csak a szakaszba zárt szöveg színe fog megváltozni, hanem az egész bekezdés.

Ha felül kell írnia a böngésző alapértelmezett viselkedését, és meg kell akadályoznia az esemény bugyborékolását, akkor a jQueryben e két metódus meghívása helyett egyszerűen false értéket adhat vissza a függvény eredményeként.

$("a").on("click", function(e)( //e.preventDefault(); //e.stopPropagation(); ... return false; ));

Események hozzáadása dinamikusan létrehozott objektumokhoz

Ha egy eseményt egy még nem létező elemre szeretne felakasztani, használhatja az on függvény alábbi felépítését:

$(dokumentum).on(eseménynév, választó, kezelő); // dokumentum vagy bármely más létező szülőelem // eventName - az esemény neve // ​​választó - egy választó, amely kiszűri azokat a leszármazottakat, amelyeknél az eseménykezelőt ki kell rúgni // kezelő - az eseménykezelő

Ez a művelet annak a ténynek köszönhető, hogy az esemény felugrik, és ezért ennek az elemnek az összes ősén előfordul. És az objektum, amelyhez az oldalon lévő összes esemény buborékosodik, a dokumentum. Ezért a legtöbb esetben azt választják. Ezt követően a kiválasztó ismeretében az on függvény programozottan kiválaszthatja az elemek közül (az eseményt okozó elem (cél) és minden őse, beleértve a szülőt is, amelyek megfelelnek neki. Ezután az összes kiválasztott elemnél hajtsa végre az on függvényben megadott kezelőt. Azokat a műveleteket, amelyek révén az eseményfeldolgozás átkerül egy másik elemre (elődre), a jQuery szintén meghívja rendezvény delegálási folyamata.

Például adjunk hozzá egy eseményt egy olyan elemhez, amely még nincs az oldalon:

A delegálás nem csak dinamikusan létrehozott objektumok eseményeinek kezelésére használható, hanem azért is, hogy ne kössünk minden elemhez kezelőt (ha sok lehet az oldalon).

Például megtiltjuk a külső hivatkozások követését a megjegyzésekben (az ilyen műveleteket átirányítjuk a távoli oldalra):

$(document).on("kattintás","#megjegyzés",function(e) ( if(!(hely.gépnév === this.hostname || !this.hostname.length)) ( e.preventDefault( ); location.href="away?link="+encodeURIComponent($(this).attr("href")); ) ));

jQuery – Eseménykezelő eltávolítása

Az eseménykezelők eltávolítása a kikapcsolt módszerrel történik. Ezzel egyidejűleg csak azokat a kezelőket távolíthatja el, amelyeket az on módszerrel adtak hozzá.

Az off metódus argumentumok nélküli meghívása eltávolítja a megadott elemekhez hozzáadott összes eseménykezelőt.

Például tiltsuk le a link osztályú elemek összes kezelőjét:

$(".link").off();

Például távolítsuk el a kattintási eseményt az összes hivatkozási osztályú elemből:

$(".link").off("link");

A speciális választó (**) lehetővé teszi, hogy csak a delegált eseményeket távolítsa el, miközben megtartja a nem delegált eseményeket:

$(".link").off("kattintás","**");

Csak a megadott delegált események eltávolítása (szelektor segítségével):

// delegált esemény hozzáadása $("ul").on("click","li", function()( // kiírja a li elem tartalmát a konzolba console.log($(this).text( )); )) ; // delegált esemény eltávolítása $("ul").off("click","li");

Távolítsa el a delegált kattintási esemény összes openModal kezelőjét a modális névtérből az osztálymegjelenítéssel rendelkező elemek esetében:

$("body").on("click.modal", ".show", openModal);

Egyéni esemény létrehozása

A jQuery az on és a trigger metódusokat használja az egyéni események létrehozásához.

Nézzük meg, hogyan hozhat létre egyéni jQuery eseményt a következő példa segítségével:

...