Avatar billede abeass Nybegynder
12. november 2005 - 12:10 Der er 5 kommentarer og
2 løsninger

setTimeout problem

Jeg har problemer med at bruge setTimeout()...

Jeg har en knap, der ved klik skal "submitte" indholdet af en "form", hvorefter siden skal skifte til en kvittering. Problemet er, at siden ofte når at skifte til kvitteringen inden formen når at blive submittet. Derfor vil jeg sætte en forsinkelse ind i form af setTimeout(). Hvis der findes en anden måde, er jeg åben for forslag...

*****************************************************************

I min HTML-fil har jeg bl.a. følgende:

<input type="hidden" name="redirect" value="Kvittering.htm">

<a href="java script:Bestil();">Bestil</a>

*****************************************************************

I min JScript-fil har jeg bl.a. følgende:

function Bestil()
{
document.data.submit();
location.href=document.getElementById('redirect').value;
}

*****************************************************************

Jeg har forsøgt at gøre sådan her:

function Bestil()
{
document.data.submit();
setTimeout(location.href=document.getElementById('redirect').value;', 1500);
}

MEN det virker ikke...

Hvordan kan jeg gøre det?

/abeass
Avatar billede plx Nybegynder
12. november 2005 - 12:17 #1
Du gør det på serversiden. Du har en hidden formvariabel netop til det formål
Avatar billede roenving Novice
13. november 2005 - 04:18 #2
-- og jeg er helt enig med plx ...

-- men du har fejl med dine plinger i setTimeout-tingen:

setTimeout("location.href=document.getElementById('redirect').value;", 1500);

-- og så skal elementet jo have et id, hvis du skal finde det:

<input type="hidden" name="redirect" id="redirect" value="Kvittering.htm">
Avatar billede abeass Nybegynder
17. november 2005 - 08:41 #3
Jeg er ikke sikker på, at jeg forstår det helt rigtigt...

*************************************************************************************
Jeg har ændret min html-fil således:

<input type="hidden" name="redirect" id="redirect" value="Kvittering.htm">

<a href="java script:Bestil();">Bestil</a>

*************************************************************************************
OG... Jeg har ændret min JScript-fil således:

function Bestil()
{
document.data.submit();
setTimeout("location.href=document.getElementById('redirect').value;", 1500);
}

*************************************************************************************
MEN... Bør det ene ";" ikke fjernes, så det ser sådan her ud?

setTimeout("location.href=document.getElementById('redirect').value", 1500);

Og hvad med hensyn til mine plinger - ser det rigtigt nok ud?

Det virker stadigvæk ikke helt... Når jeg klikker på "Bestil" er forsinkelsen der og bestillingen kommer også igennem, men min kvittering ("Kvittering.htm") kommer aldrig frem. Siden bliver bare blank...

Håber I kan hjælpe...

/abeass
Avatar billede roenving Novice
17. november 2005 - 09:36 #4
Hvis du sender en form, reloades siden, og så nedlægges alt hvad der har med den foregående side at gøre, herunder den hukommelse, hvor javascript har kørt, så det du skal gøre, er at få dit serverside script til at redirect til kvitteringen !-)
Avatar billede abeass Nybegynder
17. februar 2006 - 12:10 #5
UPS - har ikke været på i lang tid...

Har vist glemt at svare på denne her - alt virker som det skal... Tak for hjælpen!
Avatar billede roenving Novice
17. februar 2006 - 16:10 #6
Oki '-)
Avatar billede roenving Novice
17. februar 2006 - 16:43 #7
-- og 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