Avatar billede jelle Nybegynder
28. februar 2006 - 21:18 Der er 9 kommentarer og
1 løsning

Indsætte tekst fra pop-up i inputfelt

Hej!
Det her er lidt indviklet, men prøver:
Jeg har en side med en inputbox (txtNummer) ved siden af den har jeg er link.
Når jeg trykker på linket skal jeg ha en pop-up med en liste i, enten en formular eller en tabel med links. når man så trykker enten på linket eller på en værdig i listen bliver det markerede indsat i txtNummer på første side og pop-up-vinduet lukkes.

kan sagtens lave alt det med lister osv, det jeg skal have hjælp til er at få det fra pop-up'en og over i min txtNummer.

er der nogen der kan hjælpe mig, for er ikke specielt hård indenfor javascript.

på forhånd tak
Avatar billede softspot Forsker
28. februar 2006 - 22:45 #1
I dit popupvindue kalder du blot det vindue som har åbnet popuppen, således:

window.opener.forms[0].txtNummer.value = "DEN VÆRDI DER SKAL INDSÆTTES";
Avatar billede jelle Nybegynder
01. marts 2006 - 10:25 #2
jeg skal lige ha lidt mere hjælp... hvis vi nu siger det er et link, hvordan skal linket så se ud?
Avatar billede softspot Forsker
01. marts 2006 - 13:02 #3
Det kunne være kaldt fra linkets href, således:

<a href="java script:window.opener.forms[0].txtNummer.value = 'DEN VÆRDI DER SKAL INDSÆTTES';">Tekst til den værdi man vælger</a>

eller denne gør det samme bare i eventet onclick

<a href="#" onclick="window.opener.forms[0].txtNummer.value = 'DEN VÆRDI DER SKAL INDSÆTTES';">Tekst til den værdi man vælger</a>

eller denne der indsætter den tekst som du skriver mellem <a..> og </a>

<a href="#" onclick="window.opener.forms[0].txtNummer.value = this.innerHTML;">Tekst til den værdi man vælger</a>

Hvis du har mange links, kan det være en fordel at lave en function som linket kan kalde i stedet (for at undgå alt for meget inline javascript)

<script type="text/javascript">
function setParentText(obj) {
  window.opener.forms[0].txtNummer.value = obj.innerHTML;
  window.close(); // luk vinduet når værdien er sat...
}
</script>

<a href="#" onclick="setParentText(this)">Sæt værdi 1</a>
<a href="#" onclick="setParentText(this)">Sæt værdi 2</a>
<a href="#" onclick="setParentText(this)">Sæt værdi 3</a>
<a href="#" onclick="setParentText(this)">Sæt værdi 4</a>
<a href="#" onclick="setParentText(this)">Sæt værdi 5</a>


Der kan laves mange andre variationer over denne, så hvis du er ude efter noget specifikt, så må du lige til... :)
Avatar billede jelle Nybegynder
01. marts 2006 - 14:37 #4
med en enkel modifikation fik jeg det til at virke... opretter du lige et svar så du kan få nogle points?
Avatar billede softspot Forsker
01. marts 2006 - 14:45 #5
Man er jo nysgerrig :) - hvad ændrede du?
Avatar billede jelle Nybegynder
01. marts 2006 - 14:54 #6
ændrede

window.opener.forms[0].txtNummer.value = obj.innerHTML;

til:

window.opener.document.opretform.txtKode.value = obj.innerHTML;

det andet virkede nemlig ikke...
Lige en anden ting, kan du komme med en hurtig løsning, så i stedet for at den erstatter teksten i felte tilføjer den i stedet, evt med et komma foran.
Avatar billede jelle Nybegynder
01. marts 2006 - 14:55 #7
der skulle stå:
window.opener.document.opretform.txtNummer.value = obj.innerHTML;
Avatar billede softspot Forsker
01. marts 2006 - 15:00 #8
Denne version indsætter kun komme hvis der er noget i feltet i forvejen:

<script type="text/javascript">
function setParentText(obj) {
  var txt = window.opener.document.opretform.txtNummer;
  txt.value += (txt.value.length!=0?', ':'') + obj.innerHTML;
  window.close(); // luk vinduet når værdien er sat...
}
</script>
Avatar billede jelle Nybegynder
01. marts 2006 - 15:26 #9
mange tak for hjælpen!
Avatar billede softspot Forsker
01. marts 2006 - 15:32 #10
Velbekomme og mange 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