14. marts 2000 - 23:40Der er
8 kommentarer og 1 løsning
Flyt indhold fra en <select>box til en anden <select>
Jeg har: En selectbox(size=10), hvor jeg har listet en masse navne. Når man vælger et navn, skal man vha. en knap flytte navnet fra "navne-listen" over i en anden select-box, som indeholder alle de navne man vælger.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
<ole> Hvis de ligger i samme dokument, kan du ikke umiddelbart gøre det. Du kan sætte en 'value' på en 'option' i en 'select', med du skal reloade for at få skrevet teksten på din 'option'. Det kan lade sig gøre, hvis du laver de to selects i to forskellige frames, hvor du opdaterer den ene og lader noget 'document.write' skrive din select - eller du kan lade den ene select ligge i et lag, som du skriver dynamisk ind i, når du trykker på knappen. Find ud af, hvad der er smartest til dit brug, så skal jeg nok lave et eksempel til dig. /VH </bole>
Hmm.... jeg var lige lidt for hurtig på knappen. Damn. Jeg havde forestillet mig at man i navnelisten genererede navnene i selectboxen vha. "navne = new Array();", og derefter indexserede dem "navne[0], navne[1]. Og man brugte så javascript til at tilføje navnene til et andet Array i den anden selectbox.
Hvis dette er din anden select, er det så '1', '2', '3' og '4' eller 'Et', 'To', 'Tre' og 'Fire' du vil erstatte med data fra din første select? </bole>
Prøv at tage denne kode og lav din egen html-fil. Så vil du se hvad den skal kunne. Det er noget som jeg har siddet og arbejdet på, men den er ikke helt perfekt endnu. --------------------------------------------------------- <html>
<script> nameArray = new Array("Peder Valdemar Hauerslev","Martin Nielsen Sørensen","Søren Kirketerp Gregersen");
function init() { for (i=0; i < nameArray.length; i++) { var oOption = document.createElement("OPTION"); oOption.text=nameArray[i]; oOption.value=i; document.kylling.fra.add(oOption); } }
function moveToTil(what) { if (what+1) { var oOption = document.createElement("OPTION"); oOption.text=document.kylling.fra.options[what].text + document.kylling.fra.options[what].value; oOption.value=document.kylling.fra.options[what].value; document.kylling.til.add(oOption); document.kylling.fra.options[what].removeNode(true); } else { alert("Du har ikke valgt et navn på listen!"); } }
function moveFromTil(what) { if (what+1) { var oOption = document.createElement("OPTION"); oOption.text=document.kylling.til.options[what].text + document.kylling.til.options[what].value; oOption.value=document.kylling.til.options[what].value; document.kylling.fra.add(oOption); document.kylling.til.options[what].removeNode(true); } else { alert("Du har ikke valgt et navn på listen!"); } }
Jeg forstår godt, hvad du gerne ville kunne, men det kan man ikke! Du bliver som sagt nødt til at lægge dem i hver sin frame - eller form 'Til' i et lag. Det må dit design afgøre. Hvilken løsning kunne du tænke dig? Og lige et sidste spørgsmål: Er der noegen speciel grund til at navnene kommer fra et array? Stammer de fra en database, or what?
Jamen, hvis du kigger på ovenstående eksempel, så virker det egentlig fint nok(hvor det ligger i samme dokument). Det med array'en er kun foreløbig - senere skal det kodes sammen med noget ASP.
if (n) { visible='show'; hidden='hide'; }else if (ie) { visible='visible'; hidden='hidden'; }
var check = 0; function chTex(){ if (ie) { if (check==0) { lag1.innerHTML=mycont; document.all("lag1").style.visibility=visible; document.all("lag0").style.visibility=hidden; document.lag1.document.forms[1].elements[document.lag1.document.forms[1].length-3].focus(); check = 1; }else{ lag0.innerHTML=mycont; document.all("lag0").style.visibility=visible; document.all("lag1").style.visibility=hidden; document.lag0.document.forms[1].elements[document.lag0.document.forms[1].length-3].focus(); check = 0; } }else if (n) { if (check==0) { document.lag1.document.write(mycont); document.lag1.document.close(); document.layers["lag1"].visibility=visible; document.layers["lag0"].visibility=hidden; document.lag1.document.forms[0].elements[document.lag1.document.forms[0].length-3].focus(); check = 1; }else{ document.lag0.document.write(mycont); document.lag0.document.close(); document.layers["lag0"].visibility=visible; document.layers["lag1"].visibility=hidden; document.lag0.document.forms[0].elements[document.lag0.document.forms[0].length-3].focus(); check = 0; } } }
var myValues = new Array(); var mycont = ""; var num = 0; function makeCont(myNumber) { if (check==0) { lagId = 'lag0'; }else{ lagId = 'lag1'; } with (document[lagId].document.forms[num]) { for (i=0; i<length; i++){ myValues[i] = elements[i].value; } } // ************ I denne form-tag skriver du din action og method ************ mycont = "<form name='minForm'>"; for (j=0; j<myValues.length; j++) { k = j+1; if (k<10) { k = "0"+k; } mycont += "<input type='text' name='input"+k+"' value='"+myValues[j]+"'><br>"; } k++; for (l=k; l<(parseInt(k)+parseInt(myNumber)); l++) { if (l<10) { l = "0"+l; } mycont += "<input type='text' name='input"+l+"'><br>"; } mycont += "</form><br>"; chTex(); if (ie) { num = 1; } }
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.