18. januar 2003 - 20:02Der er
43 kommentarer og 1 løsning
Submit i parent window...?
Denne er i et popup-vindue:
<script language="JavaScript"><!--
function Validate() { errfound = false; if (!ValidLength_navn(document.PostUser.Brugernavn.value,0)) error(document.PostUser.Brugernavn,"Du skal skrive et brugernavn!"); if (!ValidLength_navn(document.PostUser.Adgangskode.value,0)) error(document.PostUser.Adgangskode,"Du skal skrive et password!"); if (!errfound){ document.PostUser.submit(); window.close(); } } --> </script>
Jeg vil gerne have at den skal submitte form'en i parent window...! Kan det lade sig gøre?
Det skulle virke --- hvis det er det, som du allerede har prøvet, så vil jeg gerne se lidt mere kode, f.eks. fra din form - og den kode, som åbner popup-vinduet...
Ja, det er meningen - i hvert fald den del af den! Om de indtastede oplysninger er rigtige eller ej finder jeg ud af senere - og hvis de så ikke er rigtige redirecter jeg tilbage til login-boxen med ErrorMode-variablen på!
--jowns--
Synes godt om
Slettet bruger
18. januar 2003 - 20:19#5
Skal det forstås sådan, at du vil submitte informationerne i formularen (som ligger i en popup) til den side, der åbnede popup'en? I så fald skal du se her: http://www.eksperten.dk/spm/300919
i dit hoveddokument (altså det, som åbner popup'en) laver du en form <form id="mainForm" action='http://www.klrnet.kystlivredningdanmark.dk/chklogin.asp'> <input type="hidden" name="Brugernavn"> <input type="hidden" name="Adgangskode"> <form>
i din validate-metode gør du så følgende :
function Validate() { errfound = false; if (!ValidLength_navn(document.PostUser.Brugernavn.value,0)) error(document.PostUser.Brugernavn,"Du skal skrive et brugernavn!"); if (!ValidLength_navn(document.PostUser.Adgangskode.value,0)) error(document.PostUser.Adgangskode,"Du skal skrive et password!"); if (!errfound){ document.mainForm.Brugernavn.value = document.PostUser.Brugernavn.value; document.mainForm.Adgangskode.value = document.PostUser.Adgangskode.value; document.mainForm.submit(); window.close(); } return false(); }
dvs. sende dataenen til de hidden-felter i dit hoveddokument og submitte den i stedet :-)
Nej, det har du helt ret i, men det skal der og det er det jeg ikke kan få til at virke - det er det jeg spørger om! Jeg vil gerne have, at resultatet af mit submittede data loades i det blå vindue! Ved du hvordan jeg klarer den?
Det kan være at min version er kluntet - men her er den - og den virker (skulle jeg kilse og sige)
Jeg har kodet eksemplet fra bunden, så valideringskode osv. bliver du nød til at indsætte igen ...
Den fungerer på den måde at main.htm åbner et vindue (login.htm) - når vinduet submittes, valideres det - og hvis brugernavn = "Søren", så sendes data tilbage til main.htm - og main-formet submittes --- Derved kaldes result.htm :-)
her er koden [main.htm] <html> <head> <script> function makeWindow(URL) { popX=300 popY=200 posX=((screen.availWidth/2)-(popX/2)) posY=((screen.availHeight/2)-(popX/2)) window.open(URL,"Login","height=200,width=300,toolbar=no,channelmode=no,status=no,location=no,menubar=no,directories=no,scrollbars=no,left="+posX+",top="+posY); } </script> </head>
bemærk dog at jeg har sat errfound til at være true fra start -- ud fra den devise, at alle login-forsøg er forkerte, indtil de er blevet valideret ... ergo er errfound (måske så misvisende et udtryk) sat = true;
DU ER EN GUD!!!!! Nu har jeg kun siddet og prøvet at få dette skide script til at virke i 9-10 timer - WEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE, OG NU VIRKER DET!!! ;oD
Tak for din tilbagemelding :-) - omend jeg ikke vil betegne mig selv som en gud (nok langt mere menneske, end man skulle tro - og javascript-"gud" er jeg i hvert fald ikke ... Jeg er kun lige begyndt at lære det :-)))
<script type="text/javascript" language="JavaScript"> function validate() { errfound = true;{ if (!ValidLength_navn(document.loginForm.Brugernavn.value,0)) error(document.loginForm.Brugernavn,"Du skal skrive et brugernavn!"); if (!ValidLength_navn(document.loginForm.Adgangskode.value,0)) error(document.loginForm.Adgangskode,"Du skal skrive et password!"); } if (!errfound){ var mainform = opener.document.getElementById("mainForm"); mainform.usr.value = document.loginForm.Brugernavn.value; mainform.usr.value = document.loginForm.Adgangskode.value; mainform.submit(); window.close(); } return false;
function validate() { errfound = true; if (!ValidLength_navn(document.loginForm.Brugernavn.value,0)) error(document.loginForm.Brugernavn,"Du skal skrive et brugernavn!"); if (!ValidLength_navn(document.loginForm.Adgangskode.value,0)) error(document.loginForm.Adgangskode,"Du skal skrive et password!");
if (!errfound) { var mainform = opener.document.getElementById("mainForm"); mainform.usr.value = document.loginForm.Brugernavn.value; mainform.usr.value = document.loginForm.Adgangskode.value; mainform.submit(); window.close(); } }
if (!ValidLength_navn(document.loginForm.Brugernavn.value,0)) { error(document.loginForm.Brugernavn,"Du skal skrive et brugernavn!"); } else { usrOk = true; }
if (!ValidLength_navn(document.loginForm.Adgangskode.value,0)) { error(document.loginForm.Adgangskode,"Du skal skrive et password!"); } else { pwdOk = true; }
if (usrOk && pwdOk) { var mainform = opener.document.getElementById("mainForm"); mainform.usr.value = document.loginForm.Brugernavn.value; mainform.usr.value = document.loginForm.Adgangskode.value; mainform.submit(); window.close(); } } </script>
jeg har lige prøvet det på http://www.kystlivredningdanmark.dk/klrnet.asp og der svarer den da "Du skal skrive et brugernavn", hvis man ikke skriver noget som helst i nogen af felterne...
så skal du bare sætte method mainForm til "POST" (i klrnet.asp)
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.