How can I move items from one list box control to another listbox control using JavaScript in ASP.NET?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
If you’re happy to use jQuery, it’s very, very simple.
$('#firstSelect option:selected').appendTo('#secondSelect');
Where #firstSelect is the ID of the select box.
I’ve included a working example here:
http://jsbin.com/aluzu (to edit: http://jsbin.com/aluzu/edit)
Method 2
This code assumes that you have an anchor or that will trigger to movement when it is clicked:
document.getElementById('moveTrigger').onclick = function() {
var listTwo = document.getElementById('secondList');
var options = document.getElementById('firstList').getElementsByTagName('option');
while(options.length != 0) {
listTwo.appendChild(options[0]);
}
}
Method 3
A library-independent solution:
function Move(inputControl)
{
var left = document.getElementById("Left");
var right = document.getElementById("Right");
var from, to;
var bAll = false;
switch (inputControl.value)
{
case '<<':
bAll = true;
// Fall through
case '<':
from = right; to = left;
break;
case '>>':
bAll = true;
// Fall through
case '>':
from = left; to = right;
break;
default:
alert("Check your HTML!");
}
for (var i = from.length - 1; i >= 0; i--)
{
var o = from.options[i];
if (bAll || o.selected)
{
from.remove(i);
try
{
to.add(o, null); // Standard method, fails in IE (6&7 at least)
}
catch (e)
{
to.add(o); // IE only
}
}
}
}
HTML
<select id="Left" multiple="multiple" size="10"> <option>Some</option> <option>List</option> <option>Of</option> <option>Items</option> <option>To</option> <option>Move</option> <option>Around</option> </select> <div id="Toolbar"> <input type="button" value=">" onclick="Move(this)"/> <input type="button" value=">>" onclick="Move(this)"/> <input type="button" value="<<" onclick="Move(this)"/> <input type="button" value="<" onclick="Move(this)"/> </div> <select id="Right" multiple="multiple" size="10"> </select>
CSS (example)
select { width: 200px; float: left; }
#Toolbar { width: 50px; float: left; text-align: center; padding-top: 30px; }
#Toolbar input { width: 40px; }
Quick test FF3 and IE6 & 7 only.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0