04. juni 2009 - 09:26Der er
12 kommentarer og 1 løsning
Hjælp ! - Hvad gør jeg, når brugeren bruger "tilbage"-knappen ?
Hej Eksperter !
Jeg har et lille script:
function toggleStatus() { var arguments = toggleStatus.arguments; for (var i = 0; i < arguments.length; i++) { createinspection.all(arguments[i]).disabled=!(createinspection.all(arguments[i]).disabled); } }
...som jeg bruger til at hhv disable/ikke disable en række <select>'s, når brugeren klikker på en checkbox. Det virker fint. Nogle af <select>'ne er kodet med "disabled='disabled'" og andre er ikke, og scriptet toggler mellem at disable dem der ikke er disabled og omvendt.
Problemet er, at når brugeren har submittet formen, set resultatet af sine indtastninger og derefter bruger "tilbage"-knappen, så er brugerens eventuelle klik på checkboxen glemt og <select>'s er hhv "disabled" og "ikke disabled" som var det første gang siden blev loaded. Det dur jo selvfølgelig ikke. Så hvad gør jeg, for at siden <select>'s er som brugeren har klikket sig frem til, når de returnerer til siden ?
Jeg ved ikke, om udfordringens beskrivelse giver mening - ellers må I lige sige til !
Manuelle og semi-automatiske strategier for identitetsstyring virker - lige indtil nogen beder om dokumentation. For at undgå denne fare har DKTV taget kontrol over sin identitets- og adgangsstrategi.
function confirmBrowseAway() { if (!workIsDone) { return "Are you sure you want to do that? If you leave this page " + "now, your work will NOT be saved!"; } }
function fileMyTaxes() { // The user has finished their work, so we don't // need a warning anymore! workIsDone = true; } </script>
Brug denne kode - den vil give dem en advarsel som de så skal "confirme" :)
Prøv at vælge klik på checkboxen, vælg noget i de nederste selects, submit formen og klik "Tilbage til test". Så er de nederste selects igen disabled...
Fordi den ovenstående kode bremser det, som jeg troede var dit problem: at brugerne trykkede på "tilbage" efter at de har trykke submit og derved nulstiller "testen".
Og formen virker ikke i min browser, Firefox 3? Jeg kan stadigvæk ikke trykke på de nederste SELECTS
Sorry, formen er optimeret til IE, som alle brugerne bruger.
Sagen er, at brugerne _gerne_ må taste lidt i formen, se resultatet og så vende tilbage til formen. Der er _rigtig_ mange felter i formen, så derfor bruger jeg "history.back()" til at returnere til formen. Så problemet er, at de selects, som jeg initialt sætter til disabled, er det igen, når brugeren vender tilbage til formen - på trods af, at de eventuelt har klikket på checkboxen og fjernet "disablingen"...
Kan dette være en løsning? Jeg er ikke særlig god til ASP - 99,99% på bar bund i dette sprog, men fandt noget, der minder lidt om dit problem? Eller må du uddybe lidt mere:
Jeg kan desværre ikke lige finde noget, der passer 100% med det du mangler - sorry for at have givet dig falske forhåbninger!
Mit råd (jaja, der er faktisk et :P ), og det er faktisk den eneste løsning, jeg lige kan komme på, er at gemme value i en database (MSSQL?) og lade den hente informationen der :)
function toggleStatus(){ var tmp=createinspection.checkbox1.checked; for (var i=1;i<4;i++){ createinspection["select"+i].disabled=i>1?tmp:!tmp; } }
Synes godt om
Ny brugerNybegynder
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.