Avatar billede nidyahou Praktikant
18. oktober 2008 - 17:22 Der er 16 kommentarer og
1 løsning

indsætte dropdown tekst i hiddenfield

Jeg har en dropdown som har en value, jeg vil imidlertid gerne have det valgte dropdownitems tekstværdi over i et hidden field så jeg kan poste det med. Hvordan kan ejg gøre det med javascript?
Avatar billede roenving Novice
18. oktober 2008 - 17:29 #1
Hvorfor skal det flyttes, du kan vel bare aflæse værdien serverside ?-)

-- men ellers:

<form action=" ... " method="post">
<input type="hidden" name="myHidden">

<select name="mySelect" onchange="this.form.myHidden.value=this.value;">
  <option value="default">Vælg</option>
  <option value="Værdi1">Nr. 1</option>
  <option value="Værdi2">Nr. 2</option>
  <option value="Værdi3">Nr. 3</option>
</select>
<input type="submit">
</form>
Avatar billede nidyahou Praktikant
18. oktober 2008 - 17:35 #2
det er sandt - det kan jeg, men jeg undgår helst database kald hvis det er muligt. Har du et fix til hvis der ikke ændres noget i dropdown'en?
Avatar billede nidyahou Praktikant
18. oktober 2008 - 17:36 #3
så hvis man værdier Nr. 2 skal myHidden value være "Nr. 2"
Avatar billede w13 Novice
18. oktober 2008 - 17:54 #4
Så skal du vel bare skrive det ind i value:

<form action=" ... " method="post">
<input type="hidden" name="myHidden">

<select name="mySelect" onchange="this.form.myHidden.value=this.value;">
  <option value="default">Vælg</option>
  <option value="Nr. 1">Nr. 1</option>
  <option value="Nr. 2">Nr. 2</option>
  <option value="Nr. 3">Nr. 3</option>
</select>
<input type="submit">
</form>

Og ellers hedder det vist .text og ikke .value:

<form action=" ... " method="post">
<input type="hidden" name="myHidden">

<select name="mySelect" onchange="this.form.myHidden.value=this.text;">
  <option value="default">Vælg</option>
  <option value="Værdi1">Nr. 1</option>
  <option value="Værdi2">Nr. 2</option>
  <option value="Værdi3">Nr. 3</option>
</select>
<input type="submit">
</form>
Avatar billede w13 Novice
18. oktober 2008 - 17:58 #5
Men du vil måske også have noget kode, der flytter standardværdien over, når siden indlæses?
Avatar billede w13 Novice
18. oktober 2008 - 18:31 #6
Ellers skal du sætte id="mySelect" på select'en og id="myHidden" på input-feltet, og så indsætte denne kode under hele form-elementet:

<script type="text/javascript">
document.getElementById("myHidden").value = document.getElementById("mySelect").text;
</script>
Avatar billede w13 Novice
18. oktober 2008 - 18:31 #7
Men der er det selvfølgelig meget bedre bare at sætte det manuelt i inputfeltets value. Du ved vel, hvad select'en er sat til som standard.
Avatar billede nidyahou Praktikant
18. oktober 2008 - 19:40 #8
skal der ikke nogen index betegnelse på? den returnerer ikke noget.
Avatar billede nidyahou Praktikant
18. oktober 2008 - 19:41 #9
jo, "undefined"
Avatar billede w13 Novice
18. oktober 2008 - 20:01 #10
Prøv med .firstChild.nodeValue i stedet for .text

.value behøver i hvert fald ikke noget index-betegnelse.
Avatar billede roenving Novice
19. oktober 2008 - 04:32 #11
Med teksten i option'en skal man den lange vej rundt:

<form action=" ... " method="post">
<input type="hidden" name="myHidden" value="Vælg">

<select name="mySelect" onchange="this.form.myHidden.value=this.options[this.selectedIndex].text;">
  <option value="default">Vælg</option>
  <option value="Værdi1">Nr. 1</option>
  <option value="Værdi2">Nr. 2</option>
  <option value="Værdi3">Nr. 3</option>
</select>
<input type="submit">
</form>
Avatar billede nidyahou Praktikant
19. oktober 2008 - 14:41 #12
virker det for jer når i tester det på en side med intet andet på ?
Avatar billede w13 Novice
19. oktober 2008 - 14:54 #13
Ja, dette virker fint:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<body>

<form action=" ... " method="post">
<input type="hidden" name="myHidden" value="Vælg">

<select name="mySelect" onchange="this.form.myHidden.value=this.options[this.selectedIndex].text;">
  <option value="default">Vælg</option>
  <option value="Værdi1">Nr. 1</option>
  <option value="Værdi2">Nr. 2</option>
  <option value="Værdi3">Nr. 3</option>
</select>
<input type="submit">
</form>

Den overfører teksten fra den valgte option til hidden-feltet. Når du sætter type="hidden" til type="text" i stedet, kan du se, at det sker.
Avatar billede nidyahou Praktikant
20. oktober 2008 - 12:20 #14
jeg ved da ikke hvad jeg klager for, for det virker også hos mig. Tak for hjælpen - drop svar :)
Avatar billede w13 Novice
20. oktober 2008 - 15:31 #15
Det er vist en deler, tror jeg. =)
Avatar billede w13 Novice
20. oktober 2008 - 17:19 #16
Jeg tænkte, at halvdelen nok burde gå til Roenving. Så dem kan han hente her:

http://www.eksperten.dk/spm/849690
Avatar billede roenving Novice
21. oktober 2008 - 05:29 #17
Jeg takker !-)
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