Avatar billede speder Nybegynder
25. oktober 2001 - 12:50 Der er 8 kommentarer og
1 løsning

Overføre værdier fra listbox til tekstfelt

Hej

Jeg har en listbox (multiple choice) og vil gerne have overført værdierne fra de valgte muligheder til et tekstfelt. Det er jo nemt nok, hvis det bare drejer sig om den seneste valgte værdi (som forneden), men hvad hvis jeg gerne vil have alle værdier over. Hvad gør jeg så? Jeg har indsat et tekstfelt, som det skal se ud, hvis f.eks. 1 & 3 er valgt.


<html>
<head>
</head>
<body bgcolor=\"#FFFFFF\" text=\"#000000\">
<form name=\"form1\" method=\"post\" action=\"\">
  <select name=\"select\" multiple size=\"10\" onChange=\"document.form1.textfield.value = this.options[this.selectedIndex].value\">
    <option value=\"Valg1\">1</option>
    <option value=\"Valg2\">2</option>
    <option value=\"Valg3\">3</option>
    <option value=\"Valg4\">4</option>
    <option value=\"Valg5\">5</option>
  </select>
  <textarea name=\"textfield\" rows=\"10\"></textarea>
  <textarea name=\"textfield2\" rows=\"10\">1:
Valg1
3:
Valg3
</textarea>
</form>
</body>
</html>

M.v.h.

Søren
Avatar billede nute Nybegynder
25. oktober 2001 - 13:16 #1
<html>
<head>
<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">
<!--
function transferSel( obj ){
  var len = obj.options.length;
    var txt = \"\";
    for( i = 0; i < len; i++ ){
      if( obj.options[i].selected ){
        txt += obj.options[i].value + \" \";   
        }
    }
    document.form1.textfield.value  = txt;
   
}
//-->
</SCRIPT>
</head>
<body bgcolor=\"#FFFFFF\" text=\"#000000\">
<form name=\"form1\" method=\"post\" action=\"\">
  <select name=\"select\" multiple size=\"10\" onChange=\"transferSel( this );\">
    <option value=\"Valg1\">1</option>
    <option value=\"Valg2\">2</option>
    <option value=\"Valg3\">3</option>
    <option value=\"Valg4\">4</option>
    <option value=\"Valg5\">5</option>
  </select>
  <textarea name=\"textfield\" rows=\"10\"></textarea>
  <textarea name=\"textfield2\" rows=\"10\">1:
Valg1
3:
Valg3
</textarea>
</form>
</body>
</html>

Avatar billede speder Nybegynder
25. oktober 2001 - 13:23 #2
Næsten rigtigt, men er der mulighed for at vise den label, som værdierne kommer fra (som i det tekstfelt jeg har inkluderet til illustration), f.eks.:

1:Valg1
3:Valg3

M.v.h.

Søren
Avatar billede nute Nybegynder
25. oktober 2001 - 13:25 #3
så skal du bare bytte denne linje:

txt += obj.options[i].value + \" \";   
       
med denne:

txt += i + \": \" + obj.options[i].value + \"\\n\"; 

/nute
Avatar billede speder Nybegynder
25. oktober 2001 - 13:30 #4
Var ikke helt klar nok. Det er ikke sikkert, at labels kommer i nummerorder, så derfor skal scriptet på en eller anden måde læse labels og skrive den. Det kunne godt være sådan her f.eks.

1: Valg1
To: Valg2

Kan det lade sig gøre?
Avatar billede nute Nybegynder
25. oktober 2001 - 13:33 #5
hva mener du med \'labels\' ? er det \'name\' attributten på en option du vil fange ??

/nute
Avatar billede speder Nybegynder
25. oktober 2001 - 13:37 #6
Det er den label som står imellem option-tags.

<option value=\"1\">Et</option>
<option value=\"To\">2</option>

Hvis disse to var valgt skulle der stå følgende i textfeltet.

1: Et
To: 2

Sætter lige et par points mere på for din tålmodighed
Avatar billede nute Nybegynder
25. oktober 2001 - 13:41 #7
ahhh...så bytter du igjen denne linje:

txt += i + \": \" + obj.options[i].value + \"\\n\"; 

ut med:

txt += obj.options[i].value + \": \" + obj.options[i].text + \"\\n\";

/nute
Avatar billede speder Nybegynder
25. oktober 2001 - 13:43 #8
Exactly! Tak for hjælpen.
Avatar billede nute Nybegynder
25. oktober 2001 - 14:00 #9
anytime :-)
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