Jeg sidder med noget, som jeg troede var enkelt, men som nu har taget alt for lang tid.
Jeg har brug for en funktion, der viser en confirm box når man forlader siden, men kun hvis et bestemt form-felt er udfyldt. Det skal gøre brugeren opmærksom på, at form-dataen forsvinder når siden forlades og give mulighed for at annullere.
Det var planen at funktionen skulle kaldes i body'en på onUnLoad. Hver gang man så klikker på en knap (hvis det føromtalte felt er udfyldt) skal der komme en confirm box frem med mulighederne ok og annuller. Det har jeg så også fået løst MEN! ligegyldigt om jeg trykker på ok eller annuller ryger jeg videre væk fra siden. Jeg har forsøgt med top.location = location.href, men så forsvinder min form data jo. Annuller skal jo ikke gøre noget - andet end at annullere.
Her er min funktion so far: function husk() { if (document.forms['formSkriv'].Bidrag.value != "") { input_box=confirm("Man skal huske at gemme sin tekst før man forlader siden, for ellers forsvinder den."); if (input_box==true){ // Output paa OK } else { window.top.location = location.href } } }
Jeg er langt fra en javascript-ekspert og noget hjælp vil blive modtaget med kyshånd.
Hvis du bruger <script type="text/javascript"> function husk() { if (document.forms['formSkriv'].Bidrag.value != "") { alert("Man skal huske at gemme sin tekst før man forlader siden, for ellers forsvinder den."); document.forms['formSkriv'].Bidrag.focus(); } } </script>
<body onBeforeUnload="husk();return false;">
Så kommer browserens egen "confirm-boks" frem efter "OK" på alertboksen.(virker i IE og FF). OBS. browserens confirmboks kommer hver gang siden forlades uanset om brugeren har gemt sin tekst eller ej !
Ja, det er ca. det jeg er ude efter - bare uden browserens egen "confirm-boks". Idéen var jo netop at man kun skulle få en confirm box frem hvis man havde skrevet noget i formen og derfor havde noget at miste ved at bevæge sig væk fra siden.
hov...havde ikke lige set du havde svaret. Du kan også putte din egen tekst i browserens confirmboks.
Når du submitter din form, reloades siden, så for at undgå confirmboksen når der submittes, kan du lave et check mere, ex. ved at lade submitknappen være disabled indtil et af felt er udfyldt.
Logikken: Confirmboksen skal komme, når siden forlades og 1. et påkrævet felt er udfyldt og 2. submitknappen er IKKE disabled (dvs. brugeren har ikke gemt ændringerne).
I alle andre tilfælde vil brugeren kunne forlade siden uden confimboks.
Det kan sikkert laved mere elegant, men her er et eksempel: <script type="text/javascript"> function husk(){ var a = document.getElementById("tekst1"); var b = document.getElementById("min"); if(!b.disabled && a.value != ""){ return "Man skal huske at gemme sin tekst før man forlader siden, for ellers forsvinder den."; elm.focus(); } }
Det forudsættes selvfølgelig at du har en validering af formen, der kræver visse felter udfyldt.
/psc ;-)
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.