22. oktober 2003 - 13:23
Der er
9 kommentarer og 1 løsning
Styr array ved hjælp af dropdown
Hej E. Jeg har en dropdown som hedder "states" og så har jeg et array som hedder "valg" i det har jeg nogle subarray hvis man kan kalde dem det.... valg[1] = new Array(); valg[1][0] = "text1"; valg[1][1] = "text2"; valg[2] = new Array(); valg[2][0] = "text1"; valg[2][1] = "text2"; value af states er det føste tal i valg array (f.eks. 1) men hvis jeg så sætte states til 2 så skal den udskrive det nye array i nogle tekstfælder text1 skal ud i en som hedder "text1" og text2 skal ud i en som hedder "text2" håber jeg har forklaret mig godt nok =)
Annonceindlæg fra Bluecircle
22. oktober 2003 - 13:37
#1
<script type="text/javascript"> function chText(fld){ val = +fld.value; f = fld.form; f.text1.value = valg[val][1]; f.text2.value = valg[val][2]; } </script> <select ... onchange="chText(this)">
22. oktober 2003 - 13:52
#2
får fejl i f = fld.form; Okj. understøtter ikke denne egenskab eller metode tegn 3
22. oktober 2003 - 14:01
#3
Årh, den overså jeg lige, så: f = document.forms[0] hvis det er den eneste form du har -- ellsers bliver det: f = document.forms['formNavn']
22. oktober 2003 - 14:07
#4
jeg har fået det til at virke =) tror også det var lidt min fejl... men vil du lige svare mig på en ting... kan den her funktion ikke blive kørt når jeg sætte værdigen fra det dropdown? skal nok lige se kode for at forstå hva jeg mender... <html> <head> <script> var stateNames=new Array() stateNames["none"]=new Array("Choose a country first") var stateNames_id=new Array() stateNames["Gom"]=new Array("Scanner") stateNames_id["Gom"]=new Array("3") stateNames["PTC"]=new Array("Pro-E","Pro-E Wildfire") stateNames_id["PTC"]=new Array("1","2") function fillStates(opt){ s=document.f.states.options s.length=stateNames[opt].length for(i=0;i<s.length;i++){ s[i].value=stateNames_id[opt][i] s[i].text=stateNames[opt][i] } document.f.states.selectedIndex=0 } valg = new Array(); valg[0] = new Array(); valg[0][0] = "text00"; //Overskrift : Søg valg[0][1] = "text01"; //Tekstfelt 1 : Navn valg[2] = new Array(); valg[2][0] = "text10"; //Overskrift : Søg valg[2][1] = "text11"; //Tekstfelt 1 : Navn function chText(fld){ val = +fld.value; f = fld.form; f.text1.value = valg[val][0]; f.text2.value = valg[val][1]; } function test(nr){ f.text1.value = valg[nr][0]; f.text2.value = valg[nr][1]; } </script> </head> <body> <form name="f" method="post" action="dropdown2.asp"> <select name="countries" onchange="fillStates(this.options[this.selectedIndex].value)"> <option value="none">Pick one</option> <option value="Gom">Gom</option> <option value="PTC">PTC</option> </select> <select name="states" onchange="test(this.value)"> <option value="">Choose a country first</option> </select> <br><input name="text1" type="text" style="width: 180px;" class="textbox" id="contact" value=""> <br><input name="text2" type="text" style="width: 180px;" class="textbox" id="company_name" value=""> <input type="submit" value="submit" name="submit"> </form> </body> </html>
22. oktober 2003 - 14:15
#5
Jo, f.eks. document.f.states.selectedIndex=0 chText(document.f.states); } valg = new Array();
22. oktober 2003 - 14:27
#6
jeg fårstår ikke den her fejl <html> <head> <script> var stateNames=new Array() stateNames["none"]=new Array("Choose a country first") var stateNames_id=new Array() stateNames["Gom"]=new Array("Scanner") stateNames_id["Gom"]=new Array("3") stateNames["PTC"]=new Array("Pro-E","Pro-E Wildfire") stateNames_id["PTC"]=new Array("1","2") function fillStates(opt){ s=document.f.states.options s.length=stateNames[opt].length for(i=0;i<s.length;i++){ s[i].value=stateNames_id[opt][i] s[i].text=stateNames[opt][i] } document.f.states.selectedIndex=0 saettext(document.f.states); } valg = new Array(); valg[1] = new Array(); valg[1][0] = "text10"; //Overskrift : Søg valg[1][1] = "text11"; //Tekstfelt 1 : Navn valg[2] = new Array(); valg[2][0] = "text20"; //Overskrift : Søg valg[2][1] = "text21"; //Tekstfelt 1 : Navn valg[3] = new Array(); valg[3][0] = "text30"; //Overskrift : Søg valg[3][1] = "text31"; //Tekstfelt 1 : Navn function saettext(nr){ f.text1.value = valg[nr][0]; f.text2.value = valg[nr][1]; } </script> </head> <body> <form name="f" method="post" action="dropdown2.asp"> <select name="countries" onchange="fillStates(this.options[this.selectedIndex].value)"> <option value="none">Pick one</option> <option value="Gom">Gom</option> <option value="PTC">PTC</option> </select> <select name="states" onchange="saettext(this.value)"> <option value="">Choose a country first</option> </select> <br><input name="text1" type="text" style="width: 180px;" class="textbox" id="contact" value=""> <br><input name="text2" type="text" style="width: 180px;" class="textbox" id="company_name" value=""> <input type="submit" value="submit" name="submit"> </form> </body> </html>
22. oktober 2003 - 14:33
#7
document.f.states.selectedIndex=0 saettext(0); } valg = new Array(); -- du har jo lige sat parameteren til 0, så kan vi jo ligeså godt kalde den med det direkte !-)
22. oktober 2003 - 15:04
#8
så virker det =) JUBII! tak for det... lav lige et svar =)
22. oktober 2003 - 15:06
#9
Velbekomme '-)
22. oktober 2003 - 15:14
#10
-- og tak for points ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling