25. januar 2006 - 17:08Der 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).
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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 ...
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 !-)
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)
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.