Avatar billede jan2001 Nybegynder
22. september 2008 - 19:17 Der er 14 kommentarer og
2 løsninger

Vil ikke accepterer navn

Jeg har følgende lille script

<script language=Javascript>
function Choice()
{
valg.value = choice[i].value;
}
</script>


<select name=valg onChange='Choice();'>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
</select>
<input type=text name="choice[i]">

Men det vil ikke opfatte choice[i] som navnet på textboxen.
Hvordan kan det evt. laves, så det virker?
Avatar billede soerenlyn Nybegynder
22. september 2008 - 19:30 #1
Du bør skrive det sadan her i stedet:

<script type="text/javascript">
function Choice( obj ) {
  obj.value = document.getElementById("choice").value;
}
</script>


<select id="valg" name="valg" onchange="Choice( this );">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

<input type=text id="choice" name="choice">
Avatar billede soerenlyn Nybegynder
22. september 2008 - 19:31 #2
Men når man ændrer selecten, så sætter du selectens value på baggrund af textboksen, men hvad vil du bruge det til? Det virker helt forkert ... og jeg tror heller ikke det ville virke ..
Avatar billede kalp Novice
22. september 2008 - 19:44 #3
spørgsmålet er hvordan skal det virke?
og hvis man tager soerenlyn kode så er det måske det her du forsøger på (ellers giver det slet ikke mening)

<script type="text/javascript">
function Choice( obj ) {
document.getElementById("choice").value = obj.value;
}
</script>
Avatar billede soerenlyn Nybegynder
22. september 2008 - 19:52 #4
Ja det var også det jeg tænkte :)
Avatar billede jan2001 Nybegynder
22. september 2008 - 20:34 #5
Jo, den virker da, men choice skal være et array, altså choice[$i], da det er en del af en løkke i et php script.

variablen $i skal altså proppes ind i javascriptet, men hvordan?

function Choice( obj ) {
  obj.value = document.getElementById("choice[$i]").value;
}

<select id="valg" name="valg" onchange="Choice( this );">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

<input type=text id="choice" name="choice[$i]">
Avatar billede w13 Novice
22. september 2008 - 20:38 #6
jan2001>>Du må vist forklare præcis hvad du vil opnå, for det fremgår ikke helt tydeligt af det, du skriver. Det lader til, du har forskellige felter, så du må overføre til funktionen, hvilket felt, du vil skrive til.
Avatar billede w13 Novice
22. september 2008 - 20:40 #7
I øvrigt skal type=text være type="text", da dine attribut-værdier altid skal have anførselstegn omkring.

Og du kunne måske f.eks. ordne dit problem lidt sådan her:

function Choice( obj, i ) {
  obj.value = document.getElementById("choice"+i).value;
}

<select id="valg" name="valg" onchange="Choice( this, 2 );">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

<input type=text id="choice2" name="choice[2]">
Avatar billede jan2001 Nybegynder
22. september 2008 - 20:41 #8
rettelse:

<input type=text id="choice[$i]" name="choice[$i]">
Avatar billede w13 Novice
22. september 2008 - 20:43 #9
Jeg mener nemlig ikke, du kan bruge de tegn i en id-attribut.
Avatar billede jan2001 Nybegynder
22. september 2008 - 20:49 #10
Jeg har prøvet følgende:

document.getElementById("choice["+$i+"]").value = obj.value;

men uden held.
Avatar billede w13 Novice
22. september 2008 - 20:57 #11
Det kommer nok ikke til at virke, så længe du ikke gør det, vi foreslår. =)
Avatar billede jan2001 Nybegynder
22. september 2008 - 21:06 #12
Ups, jeg så ikke lige dit forslag, w13. Det ser ud til at virke som ønsket.

Soerenlyn og w13 læg svar.
Avatar billede w13 Novice
22. september 2008 - 21:11 #13
;)
Avatar billede soerenlyn Nybegynder
22. september 2008 - 21:11 #14
..... okay ........
Avatar billede jan2001 Nybegynder
22. september 2008 - 21:15 #15
Jeg har fjernet Id"" og beholdt name="" og det virker også fint.
Mange tak for hjælpen.
Avatar billede olebole Juniormester
23. september 2008 - 00:59 #16
<ole>

Nej, det virker ikke fint. Når metoden hedder 'getElementById', henter den naturligvis elementet udfra dets id - ikke dets name. At der så er en enkelt browser, som er rasende buggy på dette område, er en helt anden ting.

- nå, men alt det har du dog sikkert forlængst opdaget, da du naturligvis tester i tre-fire forskellige browsere  ;o)

/mvh
</bole>
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

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