Avatar billede sho Nybegynder
14. oktober 2004 - 21:45 Der er 18 kommentarer og
1 løsning

Submit form i anden frame

Hey, hjælp mig lige med at holde tungen lige i munden - jeg har mistet overblikket! :-)

Jeg har en side med fire frames. I frame[1] har jeg et link, der åbner et popup-vindue med en formular. Den værdi, som brugeren vælger i en select i popup-vinduet, skal jeg have skrevet i en anden formular i frame[2]. Hvordan adresserer jeg feltet i frame[2]?

Har I brug for flere detaljer?

-Søren
Avatar billede sho Nybegynder
14. oktober 2004 - 21:47 #1
Jeg skylder måske lige at sige, at jeg ikke vil reloade nogle af de fire frames, så overskriften er ikke helt rigtig - formen skal ikke submittes, jeg skal bare have skrevet værdien fra det ene felt i popup'en i det andet felts value-attribut.
Avatar billede roenving Novice
14. oktober 2004 - 21:50 #2
Uff, en af de mere irriterende, men den kan dog løses:

<select onchange="opener.parent.frame[2].FORMNAVN.FELTNAVN.value=this.value;">
Avatar billede sho Nybegynder
14. oktober 2004 - 22:01 #3
Det glæder mig, at DU siger, at den er irriterende! Så har jeg det fint nok med, at jeg ikke har kunnet knække den! :-)

Jeg tester lige...
Avatar billede sho Nybegynder
14. oktober 2004 - 22:13 #4
Her er koden:
onchange="opener.parent.frame[2].formnavn.feltnavn.value=this.value;

Her er fejlen:
'opener.parent.frame.2' er null eller ikke et objekt

Form- og feltnavn er stavet rigtigt og med de rigtige cases (upper/lower).
Jeg var faktisk kommet frem til samme resultat som du skriver, så jeg klapper lige mig selv på skulderen! :-)

Men hvad så???
Avatar billede roenving Novice
14. oktober 2004 - 22:14 #5
Bemærk, at arrays i javascript er 0-baserede, så nummer 1 har index 0, og nummer 2 har index 1 !-)

<select onchange="opener.parent.frame[1].FORMNAVN.FELTNAVN.value=this.value;">
Avatar billede sho Nybegynder
14. oktober 2004 - 22:16 #6
Niks, det var jeg godt klar over :-) frame[2] er nummer tre i rækkefølgen...
Avatar billede sho Nybegynder
14. oktober 2004 - 22:18 #7
Belært af erfaring får du lige med, at jeg har en window.close(); med i samme event, men det burde ikke betyde noget?

onchange="opener.parent.frame[2].formnavn.feltnavn.value=this.value;window.close();"
Avatar billede roenving Novice
14. oktober 2004 - 22:20 #8
Er du sikker på, at opener-window-objektet har samme parent som den (i)frame du skal adressere ?-)
Avatar billede sho Nybegynder
14. oktober 2004 - 22:29 #9
Hmm, lige nu åbner jeg faktisk popup'en fra den samme frame som den formular, jeg vil skrive tilbage til, så det er vel samme parent?

Lidt forenklet kode fra liste.asp:

<form name="formnavn" action="fil.asp" method="post">
  <input type="text" name="feltnavn" size="5" >
  <a href="java script:opennew('soeg.asp',525,315)" >Søg</a>
</form>

Og fra soeg.asp:

<select name='resultat' onchange="opener.parent.frame[2].formnavn.feltnavn.value=this.value;window.close();">
  <option value='blank'>--- Søgeresultat ---</option>
</select>

De skulle godtnok have samme parent?
Avatar billede roenving Novice
14. oktober 2004 - 22:36 #10
Hvad så med bare at:

<select name='resultat' onchange="opener.formnavn.feltnavn.value=this.value;window.close();">
  <option value='blank'>--- Søgeresultat ---</option>
</select>
Avatar billede sho Nybegynder
14. oktober 2004 - 22:39 #11
Bingo... men... jeg har et andet link, der laver næsten det samme, men som ligger i frame[1] og skal skrive det i formularen i frame[2]? "Vi" slipper ikke for at finde ud af at adressere til den anden frame... :-|
Avatar billede roenving Novice
14. oktober 2004 - 22:42 #12
Den tidligere angivne formel er den rigtige, så der kan være nogle detaljer, men personligt ville jeg benytte mig af et name på (i)framen og:

opener.parent.frame['FRAMENAVN'].formnavn.feltnavn.value=
Avatar billede roenving Novice
14. oktober 2004 - 22:49 #13
Hov, der mangler jo document ...

opener.parent.frame['FRAMENAVN'].document.formnavn.feltnavn.value=
Avatar billede sho Nybegynder
14. oktober 2004 - 22:57 #14
...men det virker godtnok alligevel ikke... :-(

Tænke, rode, forsøge, teste.... hmm, det er sjældent at fange dig i en slåfejl...

Det virker med

opener.parent.frames['framenavn'] og ikke
opener.parent.frame['framenavn'] som du skrev... :-)

Det er helt perfekt nu, så smid et svar - som du måske har opdaget, at jeg lagt lidt flere point i puljen, så du ikke knokler for ingenting! ;-)

Tak for hjælpen igen!!
Avatar billede sho Nybegynder
14. oktober 2004 - 22:58 #15
document er åbenbart implicit. Den klarer sig i hvert fald fint uden...
Avatar billede roenving Novice
14. oktober 2004 - 23:00 #16
Uff, har jeg virkelig overset det s i flere omgange ...

Men tavetosser er en del af livet *g*

Velbekomme '-)
Avatar billede roenving Novice
14. oktober 2004 - 23:02 #17
-- og tak for point ;~}
Avatar billede sho Nybegynder
14. oktober 2004 - 23:02 #18
Ja, du er en køn hjælp er du! ;-)
Avatar billede roenving Novice
14. oktober 2004 - 23:04 #19
*lol*
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