08. april 2009 - 13:20
Der er
17 kommentarer og 1 løsning
Hjælp til listefunktion i javascript
hej Jeg har brug for en funktion i en html-side, hvor man i en dropdown kan vælge noget legetøj: bamse dukke bil tog etc. når man har foretaget valget, ønsker jeg at værdierne bliver sat ind i felterne under dropdownfeltet (on change) bliver udfyldt: eks.: (når man har valgt bamse) type: "plys" farve: "brun" hårlængde "langhåret" - jeg skal bruge dette til at kunne overføre værdierne til en send knap. Det skal helst ligge i samme HTML da jeg ikke ønsker en .js-fil
Annonceindlæg fra Thales
08. april 2009 - 13:33
#1
<ole> Hvad er det for værdier, du vil sætte ind i felterne (og hvad er det for felter), når 'Bamse' er blevet valgt? Hvor kommer 'plys', 'brun' og 'langhåret' fra? Hvad nu, hvis brugeren havde valgt 'Tog'? Hvad skulle der så f.eks. stå under 'hårlængde' - og er der forskel på hårlængden på et IC3 og et IC4 tog. Man kunne også forestille sig, der ville være et felt for 'Skinnebredde' - men hvor stor er Bamsefars skinnebredde mon så? ;o) /mvh </bole>
08. april 2009 - 13:38
#2
jeg har et andet eksempel, som jeg ikke kan få til at virke. det er måske bedre end beskrivelsen for oven :-) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="GENERATOR" content="Microsoft FrontPage 2.0"> <title>test</title> </head> <body> <form> <table width="379" border="0"> <tr> <td> </td> <td width="146"> </td> <td width="537"> </td> </tr> <tr> <td width="26"> </td> <td>Vælg forsikringsselskab</td> <td><!--<select name="Forsikringsselskab"> <option value="Codan, Gl. Kongevej 60, 1790 København V" selected>Codan</option> <option value="Danica Pension, Parallelvej 17, 2800 Kgs. Lyngby">Danica Pension</option> <option value="Topdanmark, Borupvang 4, 2750 ballerup">Topdanmark</option> <option value="Tryg Forsikring, Klausdalsbrovej 601, 2750 Ballerup">Tryg Forsikring</option> <option value="Skandia, Stamholmen 151, 2650 Hvidovre">Skandia</option> <option value="Alm. Brand Liv & Pension, Midtermolen 7, 2100 København Ø">Alm. Brand Liv & Pension</option> <option value="Aktiva Pensionsforsikring, Tuborg Boulevard 3, 2900 Hellerup ">Aktiva Pensionsforsikring</option> <option value="Alka Forsikring, Engelholm Allé 1, 2630 Taastrup">Alka Forsikring</option> <option value="Nordea Liv & Pension, Klausdalsbrovej 615, 2750 Ballerup">Nordea Liv & Pension</option> <option value="Pen-Sam Pension, Jørgen Knudsens Vej 2, 3520 Farum">Pen-Sam Pension</option> <option value="SEB Liv & Pension, Holmens Kanal 9, 1060 København C">SEB Liv & Pension</option> <option value="Funktionær Pension, Østbanegade 135, 2100 København Ø">Funktionær Pension</option> <option value="PFA Pension, Sundkrogsgade 4, 2100 Hellerup">PFA Pension</option> <option value="AP Pension, Østbanegade 135, 2100 København Ø">AP Pension</option> </select>//--> <select name="valgFors" onChange="findforsel()"> <option value="">Vælg...</option> <option value="Codan">Codan</option> <option value="Danica Pension">Danica Pension</option> <option value="Topdanmark">Topdanmark</option> <option value="Tryg Forsikring">Tryg Forsikring</option> <option value="Skandia">Skandia</option> <option value="Alm. Brand Liv & Pension">Alm. Brand Liv & Pension</option> <option value="Aktiva Pensionsforsikring">Aktiva Pensionsforsikring</option> <option value="Alka Forsikring">Alka Forsikring</option> <option value="Nordea Liv & Pension">Nordea Liv & Pension</option> <option value="Pen-Sam Pension">Pen-Sam Pension</option> <option value="SEB Liv & Pension">SEB Liv & Pension</option> <option value="Funktionær Pension">Funktionær Pension</option> <option value="PFA Pension">PFA Pension</option> <option value="AP Pension">AP Pension</option> </select></td> </tr> <tr> <td> </td> <td>Selskab</td> <td><input type="text" name="selskab"></td> </tr> <tr> <td> </td> <td>Adresse</td> <td><input type="text" name="adresse"></td> </tr> <tr> <td> </td> <td>Postnummer By</td> <td><input type="text" name="postnrby"></td> </tr> <tr> <td> </td> <td>Telefon</td> <td><input type="text" name="tel"></td> </tr> </table> </form> </body> </html>
08. april 2009 - 13:40
#3
:-P godt med lidt humor før påskeferien he he he Jeg skulle naturligvis have valgt nogle ting med samme egenskaber. my bad - men du fik da mig til at grine LOL
08. april 2009 - 13:45
#4
Hvad med det her? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE></TITLE> <script type="text/javascript"> var products = new Array(3); function Product() { var Type; var Color; var ProductId; } var product = new Product(); product.Type = "Plys"; product.Color = "Brun"; product.ProductId = "0"; products[0] = product; product = new Product(); product.Type = "Barbie"; product.Color = "Pink"; product.ProductId = "1"; products[1] = product; product = new Product(); product.Type = "BMW"; product.Color = "Lilla"; product.ProductId = "2"; products[2] = product; function UpdateFields (index){ var product = products[index]; document.getElementById('Type').setAttribute("value", product.Type); document.getElementById('Color').setAttribute("value", product.Color); } </script> </HEAD> <BODY> <select onchange="UpdateFields(this.value);"> <option value="-1">Vælg</option> <option value="0">Bamse</option> <option value="1">Dukke</option> <option value="2">Bil</option> </select> <input type="text" id="Type" value="" /> <input type="text" id="Color" value="" /> </BODY> </HTML>
08. april 2009 - 13:46
#5
Jeg studsede også over det med hårlængden og undlod den derfor i mit kode:D
08. april 2009 - 13:47
#6
I øvrigt.. dit eget kode.. hmm.. det gør jo ikke noget:D Det kalder en funktion som ikke findes:o)
08. april 2009 - 13:50
#7
hmm... Jeg kan godt se ideen nu. Mht. min egen funktion, er jeg vist kommet til at sætte funktionen ind det forkerte sted i koden. Funktionen er her: <select name="valgFors" onChange="findforsel()"> <option value="">Vælg...</option> <option value="Codan">Codan</option> <option value="Danica Pension">Danica Pension</option> <option value="Topdanmark">Topdanmark</option> <option value="Tryg Forsikring">Tryg Forsikring</option> <option value="Skandia">Skandia</option> <option value="Alm. Brand Liv & Pension">Alm. Brand Liv & Pension</option> <option value="Aktiva Pensionsforsikring">Aktiva Pensionsforsikring</option> <option value="Alka Forsikring">Alka Forsikring</option> <option value="Nordea Liv & Pension">Nordea Liv & Pension</option> <option value="Pen-Sam Pension">Pen-Sam Pension</option> <option value="SEB Liv & Pension">SEB Liv & Pension</option> <option value="Funktionær Pension">Funktionær Pension</option> <option value="PFA Pension">PFA Pension</option> <option value="AP Pension">AP Pension</option> </select>
08. april 2009 - 13:52
#8
Det der.. det er ikke en funktion:)
08. april 2009 - 13:53
#9
men ideen er rent faktisk mere end blot en idé da det rent faktisk godt kan løse din problemstilling:D. Du skal blot lave lidt slavearbejde og indtaste de forskellige data objekter til array listen og opdatere din select boks.
08. april 2009 - 13:59
#10
jeg forsøger... vender dog tilbage hvis jeg "kager" rundt i det - håber du stadig vil hjælpe ??
08. april 2009 - 13:59
#11
yes.. selvfølgelig:)
08. april 2009 - 14:00
#12
Et forslag er og se min kode virke først. Gem det i en html fil og kig på det. Når det virker kan du rette min kode om til og passe til f.eks dit forsikring eksempel. Når det virker kan du tilføje ekstra elementer til listen:)
08. april 2009 - 14:07
#13
hep... det virkede :-) jeg kom til at tænke på om man kunne gøre koden smartere ? pt. kom den til at se således ud: <!DOCSelskab HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE></TITLE> <script Selskab="text/javascript"> var products = new Array(3); function Product() { var Selskab; var Adresse; var Postnrby; } var product = new Product(); product.Selskab = "Codan"; product.Adresse = "Gl. Kongevej 60"; product.Postnrby = "1790 København V"; products[0] = product; product = new Product(); product.Selskab = "Danica Pension"; product.Adresse = "Parallelvej 17"; product.Postnrby = "2800 Kgs. Lyngby"; products[1] = product; product = new Product(); product.Selskab = "Topdanmark"; product.Adresse = "Borupvang 4"; product.Postnrby = "2750 Ballerup"; products[2] = product; function UpdateFields (index){ var product = products[index]; document.getElementById('Selskab').setAttribute("value", product.Selskab); document.getElementById('Adresse').setAttribute("value", product.Adresse); document.getElementById('Postnrby').setAttribute("value", product.Postnrby); } </script> </HEAD> <BODY> <p> <select size="1" onChange="UpdateFields(this.value);"> <option value="-1" selected></option> <option value="0">Codan</option> <option value="1">Danica Pension</option> <option value="2">Topdanmark</option> </select> </p> <p> <input Selskab="text" id="Selskab" value="" /> </p> <p> <input Selskab="text" id="Adresse" value="" /> </p> <p> <input Selskab="text" id="Postnrby" value="" /> </p> </BODY> </HTML>
08. april 2009 - 14:12
#14
Jeg synes jo personligt den er genial. Koden ville se fin ud i en .js fil, som du dog ikke ønsker:). Hvis den skal gøres ekstra smart, så kan det være olebole har et bedre forslag til lidt/hel omskrivning:)
09. april 2009 - 00:17
#15
kalp >> Nej, du synes med statsgaranti ikke, koden er genial ;o) rashid >> Det, du viser, er med ligeså stor statsgaranti ikke den kode, du bruger. Pas på med 'Find & Replace' ;o)
09. april 2009 - 00:23
#16
- og så må man aldrig bruge HTML-entities i JavaScript, så i stedet for:
product.Postnrby = "1790 København V";
- bør der stå:
product.Postnrby = "1790 København V";
Du har dog sikkert tegnsæt problemer, når du ikke sætter ét. Brug en Content-Type meta - f.eks:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- og en fuld DTD - f.eks:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd"> - eller:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd">
15. april 2009 - 11:02
#17
Så lykkedes det :-) med KALPs forslag og Ole's finpudsning :-) send et svar KALP, så kan jeg tildele points.
15. april 2009 - 12:02
#18
Godt det lykkedes:) og det her er et svar:)
Vi tilbyder markedets bedste kurser inden for webudvikling