22. april 2004 - 08:45
Der er
27 kommentarer og 1 løsning
Flytte værdier mellem to selects
Hejsa, Jeg har to multiple selects, hvor man skulle vælge en værdi i den ene, og flytte den til den anden ved hjælp af to knapper... Herunder er et eksempel på den html jeg har skrevet til det.... <table width="300" border="0" cellspacing="0" cellpadding="0"> <tr><td> <select name="deltager1" multiple size="30"> <option name="7">Aida Agassi</option> <option name="45">Anne Mette Kristoffersen</option> <option name="21">Bodil Nyholm Sørensen</option> </select> </td><td> <input type="submit" value="->"><br> <input type="submit" value="<-"><br> </td><td> <select name="deltager1" multiple size="30"> <option name="1">Peter Rank Schrøder</option> </select> </td></tr> </table>
Annonceindlæg fra SuperOffice
22. april 2004 - 08:50
#2
Takker :)
22. april 2004 - 08:55
#3
Der var jeg så for hurtig... Det virker ikke i IE på Mac OSX
22. april 2004 - 09:08
#4
hvor fejler den???
22. april 2004 - 09:09
#5
Den flytter simpelthen ingenting mellem select'ene... Nothing happens... Har lige checket på os 9x - samme problem
22. april 2004 - 09:12
#6
har du angivet de rigtige navne?? Som jeg har lavet det, skal de hedde xxxxFrom og xxxxxTo. På denne måde kan scriptet bruges til flere selects.
22. april 2004 - 09:15
#7
yups... og det virker helt fint på pc...
22. april 2004 - 09:20
#8
Får du ikke en JavaScript fejl??
22. april 2004 - 09:20
#9
Nopes.. ingenting... den foretager sig simpelthen intet
22. april 2004 - 09:30
#10
Mærkeligt. Der skulle ikke være brugt funktioner som ikke er standard fra w3. Prøv at debug med alert() for at se hvor langt den kommer i de forskellige funktioner.
22. april 2004 - 09:38
#11
Hvordan gør jeg det... er totalt tåbe til javascript
22. april 2004 - 09:43
#12
Vi starter med at flytte en. (med dobbeltklik den valgte) function addSingle(navn) { alert("start") if (document.getElementById(navn+'From').selectedIndex >= 0) { alert("1") document.getElementById(navn+'To')[document.getElementById(navn+'To').length] = new Option(document.getElementById(navn+'From')[document.getElementById(navn+'From').selectedIndex].text,document.getElementById(navn+'To').length); alert("2") document.getElementById(navn+'To')[document.getElementById(navn+'To').length-1].value = document.getElementById(navn+'From')[document.getElementById(navn+'From').selectedIndex].value; alert("3") document.getElementById(navn+'From')[document.getElementById(navn+'From').selectedIndex]=null; alert("4") } } Så skulle du gerne se nogle alert bokse når du dobbeltklikker på et element i xxxFrom. Du skulle helst se: "start", "1", "2", "3" og "4"
22. april 2004 - 09:47
#13
OKay, når jeg dobbeltklikker på en, kommer "start" alert'en op and that's it... når jeg vælger en, og klikker på flytteknappen, så sker der slet intet
22. april 2004 - 10:01
#14
prøv at tilføje denne linje. og fortlæ mig så nummeret på selectedIndex. Det må være der problemet er. Vi debugger kun på dobbeltklik (i xxxFrom) i øjeblikket, så de andre sker der ikke noget ved. function addSingle(navn) { alert("start") alert("nummer: "+ document.getElementById(navn+'From').selectedIndex)
22. april 2004 - 10:03
#15
Der sker stadig ikke mere end start alert()
22. april 2004 - 10:28
#16
kan jeg ikke lige se din kode? Nu skulle du nemlig helst få noget i retningen af "nummer: ", "nummer: 3" eller "nummer: undefined"
22. april 2004 - 10:30
#17
22. april 2004 - 10:49
#18
prøv lige denne: function addSingle(navn) { if(document.getElementById) { if (document.getElementById(navn+'From').selectedIndex >= 0) { document.getElementById(navn+'To')[document.getElementById(navn+'To').length] = new Option(document.getElementById(navn+'From')[document.getElementById(navn+'From').selectedIndex].text,document.getElementById(navn+'To').length); document.getElementById(navn+'To')[document.getElementById(navn+'To').length-1].value = document.getElementById(navn+'From')[document.getElementById(navn+'From').selectedIndex].value; document.getElementById(navn+'From')[document.getElementById(navn+'From').selectedIndex]=null; } } else { if (document.all(navn+'From').selectedIndex >= 0) { document.all(navn+'To')[document.all(navn+'To').length] = new Option(document.all(navn+'From')[document.all(navn+'From').selectedIndex].text,document.all(navn+'To').length); document.all(navn+'To')[document.all(navn+'To').length-1].value = document.all(navn+'From')[document.all(navn+'From').selectedIndex].value; document.all(navn+'From')[document.all(navn+'From').selectedIndex]=null; } } }
22. april 2004 - 10:51
#19
Det virker stadig ikke :(
22. april 2004 - 11:00
#20
Hvilken alert ser du?? function addSingle(navn) { if(document.getElementById) { alert("med getElementById") if (document.getElementById(navn+'From').selectedIndex >= 0) { document.getElementById(navn+'To')[document.getElementById(navn+'To').length] = new Option(document.getElementById(navn+'From')[document.getElementById(navn+'From').selectedIndex].text,document.getElementById(navn+'To').length); document.getElementById(navn+'To')[document.getElementById(navn+'To').length-1].value = document.getElementById(navn+'From')[document.getElementById(navn+'From').selectedIndex].value; document.getElementById(navn+'From')[document.getElementById(navn+'From').selectedIndex]=null; } } else { alert("med all") if (document.all(navn+'From').selectedIndex >= 0) { document.all(navn+'To')[document.all(navn+'To').length] = new Option(document.all(navn+'From')[document.all(navn+'From').selectedIndex].text,document.all(navn+'To').length); document.all(navn+'To')[document.all(navn+'To').length-1].value = document.all(navn+'From')[document.all(navn+'From').selectedIndex].value; document.all(navn+'From')[document.all(navn+'From').selectedIndex]=null; } } }
22. april 2004 - 11:01
#21
med getElementById
22. april 2004 - 11:05
#22
virker det hvis du bare har all delen. function addSingle(navn) { if (document.all(navn+'From').selectedIndex >= 0) { document.all(navn+'To')[document.all(navn+'To').length] = new Option(document.all(navn+'From')[document.all(navn+'From').selectedIndex].text,document.all(navn+'To').length); document.all(navn+'To')[document.all(navn+'To').length-1].value = document.all(navn+'From')[document.all(navn+'From').selectedIndex].value; document.all(navn+'From')[document.all(navn+'From').selectedIndex]=null; } }
22. april 2004 - 11:09
#23
Jæs du!!! Det gør det.... dog kun ved dobbeltklik!
22. april 2004 - 11:11
#24
men så virker vist ikke i IE Windows......
22. april 2004 - 11:12
#25
argh pis... hmm kan man ikke lave noget så den viser et bestemt javascript udfra hvilken os..?
22. april 2004 - 11:13
#26
Jo, det ser faktisk ud til at virke på windows også...
22. april 2004 - 11:18
#27
Der er nogle browsers det ikke virker i, hvis jeg husker ret. Det var faktisk derfor jeg lavede den if(document.getElementById). Så skulle den bruge getElementById hvis det virkede ellers skulle den bruge all metoden. Hvorfor det ikke virkede, fatter jeg så ikke. Du kan skifte alle document.getElementById() ud med document.all(), så skulle scriptet virke (i de browsers som kan bruge all metoden vel at mærke)
22. april 2004 - 11:19
#28
Okay... det prøver jeg... og mange tak for hjælpen
Vi tilbyder markedets bedste kurser inden for webudvikling