DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   (X)HTML, JavaScript, DHTML, XML, CSS (http://www.devprotalk.com/forumdisplay.php?f=8)
-   -   JS - promena vrednosti podataka u formi... (http://www.devprotalk.com/showthread.php?t=2983)

Ilija Studen 30. 05. 2007. 21:36

JS - promena vrednosti podataka u formi...
 
Pravim jedan mali dodatak za forme.

Kada se forma učita isModified flag je FALSE. Čim dođe do izmene neke vrednosti u formi stanje se menja u TRUE. Pri onbeforeunload() se proverava vrednost flaga i ako je TRUE pokazuje se confirmation dialog koji pita korisnika da li želi da ostane na stranici pošto je izmenio vrednosti u formi ili želi da je napusti.

Trenutno to radim tako što svakom elementu forme nakačim handler koji menja vrednost isModified flaga na onchange i onkeypress (onkeypress sam dodao se onchange trigeruje samo kada polje izgubi fokus, a često se dešava da polje ima fokus, ali ti klikneš back ili refresh).

Da li postoji elegantniji način da saznam da li su podaci u formi menjani? Da li postoji neki univerzalan event koji mogu da slušam za promene ili i dalje da slušam onchange i onkeypress?

Svaki savet dobrodošao :)

jablan 30. 05. 2007. 22:19

Meni je jedino drugo što pada na pamet da na onload snimiš negde sadržaje kontrola i da ih na onbeforeunload uporediš. Mada, time ne dobijaš nikakvu prednost osim te da korisniku, ako menja vrednosti, pa ih zatim vrati na početne, neće iskočiti upozorenje. Onda nemaš potrebu za pojedinačnim eventima, ali za velike forme može biti sporo.

Blood 31. 05. 2007. 00:43

Citat:

Originalno napisao Ilija Studen (Napišite 36092)
Pravim jedan mali dodatak za forme.

Kada se forma učita isModified flag je FALSE. Čim dođe do izmene neke vrednosti u formi stanje se menja u TRUE. Pri onbeforeunload() se proverava vrednost flaga i ako je TRUE pokazuje se confirmation dialog koji pita korisnika da li želi da ostane na stranici pošto je izmenio vrednosti u formi ili želi da je napusti.

Trenutno to radim tako što svakom elementu forme nakačim handler koji menja vrednost isModified flaga na onchange i onkeypress (onkeypress sam dodao se onchange trigeruje samo kada polje izgubi fokus, a često se dešava da polje ima fokus, ali ti klikneš back ili refresh).

Da li postoji elegantniji način da saznam da li su podaci u formi menjani? Da li postoji neki univerzalan event koji mogu da slušam za promene ili i dalje da slušam onchange i onkeypress?

Svaki savet dobrodošao :)

Mislim da je onsubmit() sasvim dovljno..

ivanhoe 31. 05. 2007. 03:37

ja bih na tvom mestu koristio neku od onih funkcija iz ajax biblioteka koje serijalizuju vrednosti svih polja u formi, i napravio bih jedan string tokom onload, a drugi onbeforeunload, i uporedio ta dva... ako nisu isti nesto je promenjeno...

Ilija Studen 31. 05. 2007. 09:02

Uh, ja sam tu mnogo zakomplikovao (sa zahtevima). Npr, ako je bar jedno polje nevalidno submit dugme bude disableovano (ne možeš da proslediš formu sa neispravnim podacima), najkasniji feedback koji korisnik mora dobiti od forme je u 0.3 sekunde i slične gluposti. Videću da okačim demo kada završim pa da čujem savete i kritike (JS se kači na UniForm markup tako se može reći da je stvar manje više univerzalna).


Vreme je GMT +2. Trenutno vreme je 12:57.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.