ole> det virker heller ikke, da det er .NET og når jeg tilføjer eventen "send();return false;" til onsubmit på formen laver den selv koden: onsubmit="java script:return WebForm_OnSubmit();" <script type="text/javascript"> <!-- function WebForm_OnSubmit() { send();return false; return true; } // --> </script>
[ - og fidusen i den løsning er, at onsubmit-event'en ikke afvikles, når formen submittes via JS ;o) ] - jeps brugte også det trick i 31/05-2006 12:36:23
[ altså nu kommer der en besked i 3 sek. hvis formen valideres, men siden opdateres som i et autopostback bortset fra at dette ikke fanges i codebehind ] - den "fangede" jeg ikke helt?
[ Hvis jeg ændrer: ] ... så kan du sikkert også bruge rette if(boolvar)setTimeout("document.aspnetForm.submit();",3000); return true;
til return true;
- men så skifter den og submitter med det samme - så afhængig af tiden destinationen er om at svare tager det kun den mængde tid ...
Hvis jeg ændrer return false til true submitter den, således at codebehind (.cs filen i C#) fanger postbacket, hvis jeg ikke ændrer det, fanger cs filen ikke postbacket og siden genindlæses bare med det samme....
Jeg mener at problemet med setTimeout er løst, så får jeg ikke et svar mclemens. Jeg opretter et nyt spm til det med postbacket i et .NET forum, for det er noget helt andet.
Hvis .NET virkelig skriver: onsubmit="java script:return WebForm_OnSubmit();"
- er det en klar fejl. Det er noget lodret vrøvl at bruge JavaScript pseudo-protokollen i en event-handler. Det er altid noget skidt, når man ikke selv har styr over koden ;o)
function send() { var f = document.getElementsByTagName("aspnetForm")[0]; document.getElementById("msg").style.visibility = "visible"; setTimeout(function(){f.submit()}, 10); return false; }
- så virker det ... på trods af .NET's grimme og invalide kode =)
- Jeg foreslår, du bruger olebole's visibility aktivering istedet for at oprette elementet ved submit, som jeg gjorde i 31/05-2006 12:36:23 (det jeg lavede med appending er lidt for omstændeligt) ...
Det er meget bedrer at man har oprettet elementet i documentet ( stylet i css og med display:hidden; eller visibility:hidden; ), og så blot viser det...
- Herefter document.getElementById("msg").style.visibility = "visible"; eller document.getElementById("msg").style.display = "block"; afhængig af ovenstående valg .
Den er ikke dårlig ... den er faktisk langt bedre. I min skulle der have stået: var f = document.getElementsByName("aspnetForm")[0];
- hvis den skulle fungere. My bad! :D
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.