Avatar billede rashid Praktikant
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
Avatar billede olebole Juniormester
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>
Avatar billede rashid Praktikant
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>&nbsp;</td>
  <td width="146">&nbsp;</td>
  <td width="537">&nbsp;</td>
</tr>
<tr>
            <td width="26">&nbsp;</td>
            <td>V&aelig;lg forsikringsselskab</td>
            <td><!--<select name="Forsikringsselskab">
<option value="Codan, Gl. Kongevej 60, 1790 K&oslash;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&oslash;benhavn &Oslash;">Alm. Brand Liv & Pension</option>
<option value="Aktiva Pensionsforsikring, Tuborg Boulevard 3, 2900 Hellerup ">Aktiva Pensionsforsikring</option>
<option value="Alka Forsikring, Engelholm All&eacute; 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&oslash;rgen Knudsens Vej 2, 3520 Farum">Pen-Sam Pension</option>
<option value="SEB Liv & Pension, Holmens Kanal 9, 1060 K&oslash;benhavn C">SEB Liv & Pension</option>
<option value="Funktion&aelig;r Pension, &Oslash;stbanegade 135, 2100 K&oslash;benhavn &Oslash;">Funktion&aelig;r Pension</option>
<option value="PFA Pension, Sundkrogsgade 4, 2100 Hellerup">PFA Pension</option>
<option value="AP Pension, &Oslash;stbanegade 135, 2100 K&oslash;benhavn &Oslash;">AP Pension</option>
</select>//-->
                <select name="valgFors" onChange="findforsel()">
                  <option value="">V&aelig;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&aelig;r Pension">Funktion&aelig;r Pension</option>
                  <option value="PFA Pension">PFA Pension</option>
                  <option value="AP Pension">AP Pension</option>
              </select></td>
</tr>
          <tr>
            <td>&nbsp;</td>
            <td>Selskab</td>
            <td><input type="text" name="selskab"></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>Adresse</td>
            <td><input type="text" name="adresse"></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>Postnummer By</td>
            <td><input type="text" name="postnrby"></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>Telefon</td>
            <td><input type="text" name="tel"></td>
      </tr>
</table>
</form>
</body>
</html>
Avatar billede rashid Praktikant
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
Avatar billede kalp Novice
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>
Avatar billede kalp Novice
08. april 2009 - 13:46 #5
Jeg studsede også over det med hårlængden og undlod den derfor i mit kode:D
Avatar billede kalp Novice
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)
Avatar billede rashid Praktikant
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&aelig;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&aelig;r Pension">Funktion&aelig;r Pension</option>
                  <option value="PFA Pension">PFA Pension</option>
                  <option value="AP Pension">AP Pension</option>
              </select>
Avatar billede kalp Novice
08. april 2009 - 13:52 #8
Det der.. det er ikke en funktion:)
Avatar billede kalp Novice
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.
Avatar billede rashid Praktikant
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 ??
Avatar billede kalp Novice
08. april 2009 - 13:59 #11
yes.. selvfølgelig:)
Avatar billede kalp Novice
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:)
Avatar billede rashid Praktikant
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&oslash;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>
Avatar billede kalp Novice
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:)
Avatar billede olebole Juniormester
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)
Avatar billede olebole Juniormester
09. april 2009 - 00:23 #16
- og så må man aldrig bruge HTML-entities i JavaScript, så i stedet for:
    product.Postnrby = "1790 K&oslash;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">
Avatar billede rashid Praktikant
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.
Avatar billede kalp Novice
15. april 2009 - 12:02 #18
Godt det lykkedes:) og det her er et svar:)
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