08. juli 2005 - 08:35Der 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..
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
-- 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>
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?
<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>
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[]'] !-)
Synes godt om
Ny brugerNybegynder
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.