Avatar billede fojensen Nybegynder
25. august 2004 - 08:35 Der er 18 kommentarer og
2 løsninger

submit form og luk derefter vindue

jeg har en lille formular der åbner sig i et popupvindue.

når formularen er udfyldt og man submitter vil jeg gerne have lukket popupvinduet i samme hug...

jeg bruger
----kode----
function send(){
    document.retform.submit();
    window.close(this);
}
// -->
</script>
<form name="retform" method="POST" action="<? echo $self; ?>">
<p><textarea rows="10" name="nytxt" cols="50"><? echo $txt; ?></textarea></p>
<p><input type="submit" value="Send" onclick="send();"><input type="reset" value="Nulstil"></p>
<input type="hidden" name="action" value="sendt">
</form>
----/kode----

vinduet lukkes fint, men der bliver ikke sendt noget...
formularen er testet inden jeg fandt på det med luk vindue

nogen der har løsningen ?
mvh Folmer
Avatar billede htx98i17 Professor
25. august 2004 - 08:41 #1
post til et andet dokument og kør vindow.close() til sidst i det dokument...
Avatar billede fennec Nybegynder
25. august 2004 - 08:45 #2
eller læg funktionen i serverscriptet (PHP) scriptet. Du gør sikkert et eller andet på siden hvis der bliver submittet.

<?
if(der bliver submittet)
{
  ...Gør noget...
  echo "<script>window.close()</script>"
  ...afbryd vidre scripting ...
}
?>

<form ...
....
Avatar billede roenving Novice
25. august 2004 - 08:51 #3
Du kan jo nøjes med:

<form name="retform" method="POST" action="<? echo $self; ?>" onsubmit="setTimeout('self.close()',500);return true;">
<p><textarea rows="10" name="nytxt" cols="50"><? echo $txt; ?></textarea></p>
<p><input type="submit" value="Send"><input type="reset" value="Nulstil"></p>
<input type="hidden" name="action" value="sendt">
</form>
Avatar billede fojensen Nybegynder
25. august 2004 - 08:54 #4
vil det sige, at det ikke kan lade sig gøre, både at submitte og derefter automatist lukke, uden at skulle oprette en svarside - der så lukker ned ???
Avatar billede ldanielsen Nybegynder
25. august 2004 - 08:55 #5
det er nok fordi du bruger en submitknap, prøv at lave den til en type=button, eller prøv dette ... ??

Prøv dette:


<form name="retform" method="POST" action="<? echo $self; ?>" onSubmit="return true; self.close();">
<p><textarea rows="10" name="nytxt" cols="50"><? echo $txt; ?></textarea></p>
<p><input type="submit" value="Send"><input type="reset" value="Nulstil"></p>
<input type="hidden" name="action" value="sendt">
</form>
Avatar billede fojensen Nybegynder
25. august 2004 - 08:55 #6
roenving - tænkte nog der var noget - skal lige afprøve...
Avatar billede fojensen Nybegynder
25. august 2004 - 09:11 #7
beklager - hverken roenving's eller ldanielsen's løsning har den ønskede effekt...
Avatar billede roenving Novice
25. august 2004 - 09:14 #8
ldanielsens vil jo aldrig komme frem til self.close(), da der er en return forrest, men hvad går galt med setTimeout'en ?-)
Avatar billede fojensen Nybegynder
25. august 2004 - 09:25 #9
roenving - formen submitter, men der lukkes ikke...
Avatar billede roenving Novice
25. august 2004 - 09:31 #10
Prøv at eksperimenter lidt med tiden, sandsynligvis er det ½ sekund alt for lang tid, jeg ville også prøve med 30 eller 50 ms. !-)
Avatar billede ldanielsen Nybegynder
25. august 2004 - 09:39 #11
sorry, det havde jeg overset.

roenving, siden forlades jo ved submit, så klienten vil standse afviklingen af scriptet. Derfor vil din timeout aldrig afvikles.

Nu vil jeg lige lege lidt med en anden ide jeg har ...
Avatar billede fennec Nybegynder
25. august 2004 - 09:41 #12
fojensen >>

har du prøvet min ide. Bruger den selv, og den virker altid.
Avatar billede ldanielsen Nybegynder
25. august 2004 - 09:47 #13
<body onUnload="self.close();">

gør det, og drop så alt det andet
Avatar billede fojensen Nybegynder
25. august 2004 - 09:51 #14
fennec - jeg kan sagtens følge din ide - den er bare ikke så velegnet her, fordi formen redigerer en tekst, og svarsiden viser teksten. Denne svarside hentes i andre tilfælde ind i en webside, og hvis der er placeret en vindow.close her sy forstyrrer det afviklingen af disse sider.

roenving - det hjalp faktisk at eksperimentere med tiden, har prøvet mig lidt frem og ved 150 ms har det den ønskede effekt - smid venligst et svar...
Avatar billede fojensen Nybegynder
25. august 2004 - 09:56 #15
ldanielsen - <body onUnload="self.close();"> må være tiltænkt at bygge ind i en evt. svarside, men svarsiden hentes i andre tilfælde ind i en webside, og så forstyrrer det afviklingen af disse sider.
Avatar billede roenving Novice
25. august 2004 - 09:59 #16
Velbekomme '-)
Avatar billede ldanielsen Nybegynder
25. august 2004 - 10:00 #17
Nej den skal være på formsiden, på den måde vil formen submites, og først derefter vil vinduet lukkes. Det virker faktisk!
Avatar billede fojensen Nybegynder
25. august 2004 - 10:25 #18
Ja - det er sgu rigtigt - begge løsninger virker - tak for det...
Avatar billede roenving Novice
25. august 2004 - 10:35 #19
-- og tak for point ;~}
Avatar billede ldanielsen Nybegynder
25. august 2004 - 10:38 #20
selv tak
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