Avatar billede budda Nybegynder
08. juli 2005 - 08:35 Der er 9 kommentarer og
1 løsning

Hjælp med en select box

Jeg har følgnede form:
<form>
<p><input type="checkbox" name="info[]" value="1">Nummer1<br>
    <input type="checkbox" name="info[]" value="2">Nummer2<br>
    <input type="checkbox" name="info[]" value="3">Nummer3<br>
    <input type="checkbox" name="info[]" value="4">Nummer4</p>
    <p>Ekstra info</p>
    <p><select size="4" name="D1">
    <option id="1" value="12">Eksta info for #1, 1</option>
    <option id="1" value="13">Eksta info for #1, 2</option>
    <option id="2" value="14">Eksta info for #2, 1</option>
    </select></p>
    <p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
</form>

Mangler så en funktion der sørger for at hvis at man trykker på Nummer1 vises ekstra info for nummer 1, osv. Man skal kunne have flere aktive..
Samtidig når der bliver trykket nulstil så skal ekstra info self fjernes..

På forhånd tak
Avatar billede roenving Novice
08. juli 2005 - 13:19 #1
Den forstår jeg ikke ...

-- og er det ikke det samme, du spørger om i http://www.eksperten.dk/spm/630990 ?-)
Avatar billede budda Nybegynder
08. juli 2005 - 18:05 #2
Jo men det var ikke det orginale spørgsmål...
Det skal være sådan at <select size="4" name="D1"> som skulle hedde ekssta[] hehe :)
Viste ekstra info for dem der er valgt.

DVS er #1 valgt så viser den
Ekstra #1,1
Ekstra #1,2

Og er 1 & 2 valgt skal den vise
Ekstra #1,1
Ekstra #1,2
Ekstra #2,1

Altså styret af det id den har ..

samtidig skal den understøtte når der bliver trykket på nulstil
Avatar billede budda Nybegynder
08. juli 2005 - 20:48 #3
Altså i bund og grund skal jeg kunne styrer indholdet af en select box med check knapper..
Avatar billede roenving Novice
08. juli 2005 - 21:10 #4
-- så må du lave en database, som værdierne kan hentes fra !-)

<script type="text/javascript">
var vals = new Array();

vals[1] = ["Ekstra info for #1, 1","12","Ekstra info for #1, 2","13"];
vals[2] = ["Ekstra info for #2, 1","14"];
vals[3] = ["Ekstra info for #3, 1","15","Ekstra info for #3, 2","16","Ekstra info for #3, 3","17"];
vals[4] = ["Ekstra info for #4, 1","18"];

function setSelect(elm){
  var sel = elm.form.D1;
  var e = elm.form.elements;
  sel.length = 1;
  for(i=0;e.length>i;i++){
    if(e[i].type=='checkbox'&&e[i].name=='info[]'&&e[i].checked){
      for(j=0;vals[+e[i].value].length>j;j+=2){
        sel.options[sel.length] = new Option(vals[+e[i].value][j],vals[+e[i].value][j+1]);
      }
    }
  }
}
</script>

<form>
<p><input type="checkbox" name="info[]" value="1" onclick="setSelect(this);">Nummer1<br>
    <input type="checkbox" name="info[]" value="2" onclick="setSelect(this);">Nummer2<br>
    <input type="checkbox" name="info[]" value="3" onclick="setSelect(this);">Nummer3<br>
    <input type="checkbox" name="info[]" value="4" onclick="setSelect(this);">Nummer4</p>
    <p>Ekstra info</p>
    <p><select multiple="multiple" size="4" name="D1">
      <option>Vælg ekstrainfo</option>
    </select></p>
    <p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2" onclick="this.form.D1.length=1"></p>
</form>
Avatar billede budda Nybegynder
08. juli 2005 - 21:18 #5
Lækkeri :) Det var LIGE det hehe :)
Lige en ændring hvis det ermuligt :)
Kan man gøre sådan at der står "Du skal vælge en kategori"
Som så kommer væk når der er valgt en kategori?

Altså der hvor der står Vælg Ekstrainfo :)?
Avatar billede roenving Novice
08. juli 2005 - 21:28 #6
Tjah, sådan:

<script type="text/javascript">
var vals = new Array();

vals[1] = ["Ekstra info for #1, 1","12","Ekstra info for #1, 2","13"];
vals[2] = ["Ekstra info for #2, 1","14"];
vals[3] = ["Ekstra info for #3, 1","15","Ekstra info for #3, 2","16","Ekstra info for #3, 3","17"];
vals[4] = ["Ekstra info for #4, 1","18"];

function setSelect(elm){
  var sel = elm.form.D1;
  var e = elm.form.elements;
  sel.length = 1;
  for(i=0;e.length>i;i++){
    if(e[i].type=='checkbox'&&e[i].name=='info[]'&&e[i].checked){
      for(j=0;vals[+e[i].value].length>j;j+=2){
        sel.options[sel.length] = new Option(vals[+e[i].value][j],vals[+e[i].value][j+1]);
      }
    }
  }
  if(sel.length>1)
    sel.options[0] = null;
  else
    sel.options[0] = new Option("Du skal vælge en kategori");
}
</script>

<form>
<p><input type="checkbox" name="info[]" value="1" onclick="setSelect(this);">Nummer1<br>
    <input type="checkbox" name="info[]" value="2" onclick="setSelect(this);">Nummer2<br>
    <input type="checkbox" name="info[]" value="3" onclick="setSelect(this);">Nummer3<br>
    <input type="checkbox" name="info[]" value="4" onclick="setSelect(this);">Nummer4</p>
    <p>Ekstra info</p>
    <p><select multiple="multiple" size="4" name="D1">
      <option>Du skal vælge en kategori</option>
    </select></p>
    <p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2" onclick="this.form.D1.length=1"></p>
</form>

Velbekomme '-)
Avatar billede budda Nybegynder
08. juli 2005 - 21:38 #7
Og svar :)
Avatar billede roenving Novice
08. juli 2005 - 21:47 #8
Tak for point ;~}
Avatar billede budda Nybegynder
08. juli 2005 - 21:58 #9
den giver fejl når jeg omdøber select til xtra[]
Gør det også i nulstil samt
  var sel = elm.form.xtra[];
Avatar billede roenving Novice
08. juli 2005 - 22:04 #10
Ja, hvis du skal have fat i et felt med direkte adressering, kan du ikke bruge en identifikator, som indeholder den slags tegn ...

-- men hvorfor i alverden skal du have en array-ting på den ?-)

Tricket er at benytte sig af elements-collection på formen, altså:

elm.form.elements['xtra[]'] !-)
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