Avatar billede mmbn Nybegynder
25. januar 2006 - 17:08 Der er 10 kommentarer og
2 løsninger

kontrol om ændringer

Jeg ville gerne have et forholdvist dynamisk script jeg kunne placere i en js fil. dette script skal kunne løbe en eller flere forme igennem og kontrollere om der er sket ændringer i text felter, dropdownlist og lignende. Hvis en bruger så trykker på et andet link uden at have gemt disse ændringer skal denne have en advarsel om at der er lavet ændringer og at oplysningerne ikke er gemt. Hvordan kan dette lade sig gøre? meget gerne eksempler. programmet kører i asp.net (vb).
Avatar billede roenving Novice
25. januar 2006 - 17:20 #1
Hvis du skal checke en ændring i et tekstfelt, skal du bare spørge på forskellen mellem value og defaultValue:

if(tekstfelt.value != tekstfelt.defaultValue){
  //gør noget
}

-- ligeledes kan du teste checkboxe og radios med defaultChecked og options i selects med defaultSelected (men husk at det er den enkelte checkbox, radioknap eller option, der skal testes !-)

-- problemet er straks værre, når det handler om at udføre noget, hvis der trykkes på et link, for i IE findes en onbeforeunload-event, som kan bruges til at udføre noget, men den er ikke så udbredt udover forskellige browsere ...
Avatar billede mmbn Nybegynder
25. januar 2006 - 17:46 #2
jeg afprøver det - tak for det hurtige respons
Avatar billede mmbn Nybegynder
25. januar 2006 - 18:19 #3
defaultvalue - er det de værdier der er i felterne når siden loades?
Avatar billede mmbn Nybegynder
25. januar 2006 - 18:38 #4
kan man undersøge om siden skifter?
Avatar billede mmbn Nybegynder
25. januar 2006 - 18:42 #5
kan det undersøges hvis det ikke er et link? eksempelvis tilbage knappen?
Avatar billede roenving Novice
26. januar 2006 - 15:20 #6
unload forekommer uanset hvilken grund, der er til at siden ikke forbliver i browseren, så det sker både ved links på siden, tryk på frem og tilbage-knapper og f.eks. opslag i Foretrukne ...

-- problemet er, at det hukommelsesområde, som den nuværende browser-instans lægger beslag på til siden, nedlægges efter meget kort tid (afhængig af styresystemets villighed og hastighed til at eksekvere browserens request !-)

-- derfor er IE onbeforeunload en event, der er virkelig brugbar, mens unload er risky business og ikke til at stole på !o]

-- og alle default-tingene beskriver tilstanden, som siden initieres med ved load, ja !-)
Avatar billede mmbn Nybegynder
01. februar 2006 - 11:41 #7
tak for hjælpen - er gået igang med at kigge på ajax.net wrapper klassen. Smid et svar og modtag dine point :)
Avatar billede olebole Juniormester
01. februar 2006 - 12:48 #8
<ole>

De seneste Mozilla'er understøtter også onbeforeunload - men der er stadig grænser for, hvad man kan udføre på den. Man skal tænke sig godt om  :)

Ajax hjælper ikke noget i denne situation, da evt. ændringer i DB med videre jo ikke må foretages, før brugeren trykker 'Send' (or whatever).
Derimod kan man på onblur gemme hvert felts værdi i en cookie, hvorfra det kan genindlæses - men der er en del udfordringer i en god løsning  ;o)

/mvh
</bole>
Avatar billede roenving Novice
01. februar 2006 - 13:02 #9
Oki, velbekomme '-)

-- men behold selv langt de fleste af dine point !-)
Avatar billede roenving Novice
01. februar 2006 - 13:03 #10
;O)
Avatar billede mmbn Nybegynder
02. februar 2006 - 08:01 #11
takker, men det var dine ideer der fik mig ind på det.
Avatar billede roenving Novice
05. februar 2006 - 06:36 #12
Tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester