09. februar 2004 - 13:22Der er
10 kommentarer og 1 løsning
Mangler værdien af variabel med dynamisk navn
Hej.
Jeg mangler værdien af variabel med dynamisk navn. Jeg forestillede mig man kunne gøre noget lignende nedenstående, men det virker p.t. ikke:
<script language=javascript> function test(id) { // Der findes fx 2 tekstfelter, som hedder henholdsvis txt_1 og txt_2. // id er dermed 1 eller 2. // Der der trykket submit og txt_1 og txt_2's værdier ses i adresselinjen // Jeg skal bruge værdien af txt_id alert("txt_"+id+" = "+getValue("txt_"+id)); } // function test </script>
Det ser ikke ud til at virke efter hensigten. Mozilla Firebird sker der en fejl, I IE kommer der ingen javascript fejl, men værdien kommer ikke med alligevel!
det er jo fordi du ikke har 'id' attribut på dine formelement. du bruger metoden:
getElementById
som navnet på metoden angiver, så prøver du at aksessere et element via dets *ID* ... så længe du ikke har en 'id' attribut på dine element, så vil den jo hellere ikke finde elementet. prøv:
Det gjorde den forskel, at der ikke længere kommer fejl i Mozilla, men jeg får stadig ingen value i nogen af browserne! Desuden bruger jeg getElementById på en select boks et andet sted, hvor det virker, selv om der ikke er et id-felt!
når du laster siden, er jo dine elementer tomme. prøv denne, så vil du se at det fungerer:
<html> <body> <form> skriv noget i felterne og klik på knappen<br> <input type=text name=txt_1 id=txt_1><br> <input type=text name=txt_2 id=txt_2><br> <input type=button onclick="test();" value="klik for at se indhold"> <script language=javascript> function test() { str = ""; for( var id=1; id <= 2; id++) { str += "txt_" + id + " = " + document.getElementById("txt_" + id ).value + "\n"; } alert( str ); } // function test </script> </body> </html>
Øhmmm... ja, det kan du have ret i! Nu har jeg så også fået noget til at virke, men er lidt nervøs for at at eksemplet ikke løser problemet!
Detaljen er at den skal hente variablen via adresselinjen og ikke fra et input-felt! Det vil den fx gøre hvis man, når man submitter, går til en anden side, hvor der ikke er et felt, der hedder det samme som det variabelnavnet hedder.
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.