Avatar billede dramsgaard Nybegynder
11. december 2004 - 13:57 Der er 22 kommentarer og
1 løsning

popup og form

kan man med javascript når man submitter en form få den til at sende indholdet af formularen til en popup, men samtidig beholde værdierne i formfelterne på siden hvor formularen submittes fra?
Avatar billede baitianlong Nybegynder
11. december 2004 - 17:32 #1
Ja, det skulle jeg mene... Men det bliver en lidt syret måde, hvor man fylder dem i det oprindelige vindue igen, efter de er modtaget på pop-up vinduet. For når der submittes, tømmes formfelterne. Du bliver dog nødt til at bruge f.eks PHP kombineret med javascript
Avatar billede olebole Juniormester
11. december 2004 - 20:40 #2
<ole>

Den sikreste måde er, at åbne et vindue og skrive et lillebitte JavaScript til det, der submitter formen. Så er vi helt sikker på, vinduet eksisterer, når formen submittes:

<script type="text/JavaScript">
var myWin = null;
function doSubmit(f) {
    myWin = window.open("","myWin", "width=400,height=300,location=yes");
    myWin.document.open();
    myWin.document.write("<html><body><scr"+"ipt type='text/JavaScript'>opener.document.bla.submit()</scr"+"ipt></body></html>");
    myWin.document.close();
}
</script>

<form name="bla" action="http://www.google.com" target="myWin" method="get">
<input type="text" name="test" value="noget">
<button onclick="doSubmit(this.form);return false">Send</button>
</form>

Jeg har sat 'method' på formen til 'GET' - og indsat adresselinie (location=yes) i popup-vinduet, så man kan se, det virker  :)

/mvh
</bole>
Avatar billede olebole Juniormester
11. december 2004 - 20:41 #3
... da target ikke er samme vindue, som formen ligger i, reloades vinduet med formen ikke ved submit - hvorfor formen heller ikke tømmes ved submit  :)
Avatar billede dramsgaard Nybegynder
12. december 2004 - 16:25 #4
hvordan kan jeg sætte min egen url ind i dit script?

er ikke så skarp til js
Avatar billede dramsgaard Nybegynder
12. december 2004 - 16:29 #5
myWin.document.write("<html><body><scr"+"ipt type='text/JavaScript'>opener.document.bla.submit()</scr"+"ipt></body></html>");
    myWin.document.close();

eller jeg mener hvad bruges det til?
Avatar billede baitianlong Nybegynder
12. december 2004 - 16:32 #6
OleBole, lige et spørgsmål... Denne lille snedige ting:

scr"+"ipt

Er det for at omgå ServicePack2 ? Og virker det ?
Avatar billede olebole Juniormester
12. december 2004 - 19:52 #7
Det har man altid skulle gøre i JavaScript. JS må/kan ikke skrive 'sit eget navn' ... det kan man 'svindle' sig ud af på den måde  :)
Avatar billede olebole Juniormester
12. december 2004 - 19:54 #8
Dette kan JS godt skrive: type='text/JavaScript' ... men ikke script-tags
Avatar billede baitianlong Nybegynder
12. december 2004 - 20:00 #9
ok, jeg misforstod koden. Jeg tænkte på om det var noget man gjorde for at browseren ikke advarede om de "farlige" scripts, men det ville jo være lidt svært under alle omstændigheder, da men jo ikke kan bruge document.write("<scr"+"ipt>") uden at være i en <script> blok :P
Avatar billede dramsgaard Nybegynder
12. december 2004 - 21:00 #10
er det muligt at sætte target og action fra <form> ind i funktionen istedet?
Avatar billede olebole Juniormester
12. december 2004 - 21:02 #11
Hvad mener du med 'i stedet for'? Formen har både target og action - og dem piller scriptet ikke ved  :)
Avatar billede dramsgaard Nybegynder
12. december 2004 - 21:16 #12
jeg har flere submit knapper i den formular hvor jeg skal bruge dit script, som submitter til forskellige url'er, derfor er det ikke så godt at der står target og action i form tag'et
kan man sætte det ind i din funktion istedet?
Avatar billede olebole Juniormester
12. december 2004 - 21:26 #13
Tjo ... det kan man vel godt:
  myWin.document.write("<html><body><scr"+"ipt type='text/JavaScript'>var f=opener.document.bla;f.action='http://www.google.com';f.target='myWin';f.submit()</scr"+"ipt></body></html>");
Avatar billede dramsgaard Nybegynder
13. december 2004 - 12:53 #14
hmm da jeg testede det lokalt virkede det godt nok, men efter jeg lagde dit script ind i min formular og uploadede det, indeholder popup vinduet kun: <html><body><script type='text/JavaScript'>var f=opener.document.bla;f.action='http://www.dramsgaard.net/admin-nyheder.asp';f.target='myWin';f.submit()</script></body></html> istedet for websiden der skal hentes
<form action="" method="post" onsubmit="return submitForm(this);">
.........
      <%if intID<>"" and isNumeric(intID) then%>
      <input name="rediger" type="submit" onclick="this.form.action='update2.asp?method=Edit&id=<%=intID&page%>';"  value="Gem &aelig;ndringer"/>
      <%else%>
      <input name="opret" type="submit" value="Opret" onclick="this.form.action='update2.asp?method=Add';" />
      <%end if%>
        <input name="test" type="button" onclick="doSubmit(this.form);return false" value="TEST">
Avatar billede olebole Juniormester
13. december 2004 - 19:30 #15
Scriptet kalder en form, der hedder 'bla' - men det hedder din form i dokumentet nok ikke. Skriv navnet på din form her:
    f=opener.document.bla;

Du kan også kalde den med formens nummer i rækken af forms på siden - de starter som altid med nummer nul:
    f=opener.document.forms[0];
kalder første form i dokumentet
Avatar billede dramsgaard Nybegynder
13. december 2004 - 23:14 #16
lav et sar så får du point : )
Avatar billede olebole Juniormester
13. december 2004 - 23:22 #17
s'gerne  :)
Avatar billede dramsgaard Nybegynder
13. december 2004 - 23:28 #18
kan man i øvrigt på en nem måde gøre så popup vinduet altid ligger sig forrest når man trykker på submit knappen?
for hvis man trykker på knappen, og vinduet er åbent i forvejen bliver det liggende i baggrunden
Avatar billede olebole Juniormester
13. december 2004 - 23:37 #19
yups:

<script type="text/JavaScript">
var myWin = null;
function doSubmit(f) {
    myWin = window.open("","myWin", "width=400,height=300,location=yes");
    myWin.document.open();
    myWin.document.write("<html><body><scr"+"ipt type='text/JavaScript'>opener.document.bla.submit()</scr"+"ipt></body></html>");
    myWin.document.close();
    myWin.focus();  // Denne linie hiver popup-vinduet frem i fokus
}
</script>
Avatar billede dramsgaard Nybegynder
13. december 2004 - 23:47 #20
det ser ikke ud til at virke desværre.

hvis popup-vinduet er åbent og man trykker på knappen forbliver det bagved
Avatar billede olebole Juniormester
14. december 2004 - 00:12 #21
Hmmm ... det lyder zq da sært. Så prøv:

<script type="text/JavaScript">
var myWin = null;
function doSubmit(f) {
    myWin = window.open("","myWin", "width=400,height=300,location=yes");
    myWin.document.open();
    myWin.document.write("<html><body><scr"+"ipt type='text/JavaScript'>opener.document.bla.submit();window.focus()</scr"+"ipt></body></html>");
    myWin.document.close();
}
</script>
Avatar billede dramsgaard Nybegynder
14. december 2004 - 11:27 #22
det virker tak :)
Avatar billede olebole Juniormester
14. december 2004 - 12:26 #23
buenno ... og tak for points  :)
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