23. marts 2004 - 14:12
Der er
8 kommentarer og 1 løsning
Kopiering af selectbox?!
Hey, Jeg har en selectbox a og b. Selectbox a indeholder nogle options, selectbox b er tom. Hvordan gør jeg sådan, at når jeg klikker på dropdown på selectbox b, så kopieres options'ene fra selectbox a over i selectbox b? P.S. Løsningen skal helst være vha. JScript eller evt. VBScript! /deamill
Annonceindlæg fra Barco
23. marts 2004 - 14:59
#1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Untitled</title> <script language="JavaScript" type="text/javascript"> <!-- function swapOptions( strFrom, strTo ) { var objFrom = document.getElementById( strFrom ); var objTo = document.getElementById( strTo ); for( i = 0; i < objFrom.options.length; i++ ) { if( objFrom.options[ i ].selected ) { var objOption = document.createElement( "option" ); objTo.appendChild( objOption ); objOption.value = objFrom.options[ i ].value; objOption.text = objFrom.options[ i ].text; objOption.selected = false; objFrom.options[ i ] = null; } } } //--> </script> </head> <body> <form id="frm" onsubmit="return submitForm( this )"> <table> <tr> <td> <select id="sel1" size="5" multiple="multiple"> <option value="1">Option 1</option> <option value="2">Option 2</option> <option value="3">Option 3</option> <option value="4">Option 4</option> <option value="5">Option 5</option> </select> </td> <td> <input type="button" value=" >> " onclick="swapOptions( 'sel1', 'sel2' );"><br> <input type="button" value=" << " onclick="swapOptions( 'sel2', 'sel1' );"> </td> <td> <select id="sel2" size="5" multiple="multiple" style="width:75px;"/> </td> </tr> </table> </form> </body> </html>
23. marts 2004 - 15:05
#2
ups ... der manglede lige en i--; under denne linie: objFrom.options[ i ] = null; if( objFrom.options[ i ].selected ) { var objOption = document.createElement( "option" ); objTo.appendChild( objOption ); objOption.value = objFrom.options[ i ].value; objOption.text = objFrom.options[ i ].text; objOption.selected = false; objFrom.options[ i ] = null; i--; }
23. marts 2004 - 15:11
#3
<script language="javascript" type="text/javascript"> function cloneOptions(elm,id){ var sel = document.getElementById(id),newOpt; elm.style.width = sel.offsetWidth + 'px'; for(i=0;sel.length>i;i++){ opt = sel.options[i]; newOpt = document.createElement('OPTION'); elm.appendChild(newOpt); newOpt.value = opt.value; newOpt.text = opt.text; newOpt.selected = opt.selected; } } </script> <select name="a" id="a" onchange=""> <option value="">-- Vælg her --<br> <option value="1">1<br> <option value="2">2<br> <option value="3">3<br> </select> <br> <br> <select name="b" id="b" onclick="if(this.length==0)cloneOptions(this,'a');"> </select>
24. marts 2004 - 08:40
#4
Hey, tak for svarene, jeg kan først få afprøvet om det virker på fredag :-)
26. marts 2004 - 09:32
#5
roenving -> Det virker :-) Du skal lige svare! Et lille tillægs spørgsmål. I stedet for at kalde functionen "onclick", kan man så kalde den "oncreate"? /deamill
26. marts 2004 - 13:11
#6
Næh, men du kan da gøre det onload på dokumentet, og så skal vi lige lave en anelse om på funktionen: <script language="javascript" type="text/javascript"> function cloneOptions(til,fra){ var sel = document.getElementById(fra),newOpt; var elm = document.getElementById(til); elm.style.width = sel.offsetWidth + 'px'; for(i=0;sel.length>i;i++){ opt = sel.options[i]; newOpt = document.createElement('OPTION'); elm.appendChild(newOpt); newOpt.value = opt.value; newOpt.text = opt.text; newOpt.selected = opt.selected; } } </script> <select name="a" id="a" onchange=""> <option value="">-- Vælg her --<br> <option value="1">1<br> <option value="2">2<br> <option value="3">3<br> </select> <br> <br> <select name="b" id="b"> </select> -- og så skal vi kalde den onload: <body onload="cloneOptions('b','a');"> -- og body skal selvfølgelig ind der hvor den skal ind ... -- og velbekomme '-)
31. marts 2004 - 07:23
#7
-- og tak for points ;~}
31. marts 2004 - 07:29
#8
hejsa, det er fordi jeg bruger den clone du lavede til mig, til at indsætte elementer i mine selectboxe. Men jeg vil gerne have at de automatisk bliver indsat når selectboxen bliver lavet. Som der er nu, bliver elementerne jo først insat "onclick"! Forstår du hvad jeg mener?
31. marts 2004 - 07:31
#9
doh.. det skulle ikke stå der, glem det jeg lige har skrevet ;-)
Vi tilbyder markedets bedste kurser inden for webudvikling