var sortitems = 1; // Automatically sort items within lists? (1 or 0)
function move(fbox, tbox) {
fbox = document.getElementById(fbox);
tbox = document.getElementById(tbox);
for (var i = 0; i < fbox.options.length; i++) {
if (fbox.options[i].selected && fbox.options[i].value != "") {
if (exits(tbox, fbox.options[i].value)) {
fbox.options[i].value = "";
fbox.options[i].text = "";
continue;
}
var no = new Option();
no.value = fbox.options[i].value;
no.text = fbox.options[i].text;
tbox.options[tbox.options.length] = no;
fbox.options[i].value = "";
fbox.options[i].text = "";
}
}
BumpUp(fbox);
if (sortitems) SortD(tbox);
}
function moveall(fbox, tbox) {
fbox = document.getElementById(fbox);
tbox = document.getElementById(tbox);
for (var i = 0; i < fbox.options.length; i++) {
if (fbox.options[i].value != "") {
if (exits(tbox, fbox.options[i].value)) {
fbox.options[i].value = "";
fbox.options[i].text = "";
continue;
}
var no = new Option();
no.value = fbox.options[i].value;
no.text = fbox.options[i].text;
tbox.options[tbox.options.length] = no;
fbox.options[i].value = "";
fbox.options[i].text = "";
}
}
BumpUp(fbox);
if (sortitems) SortD(tbox);
}
//检测HTMLSelect中是否有value项Option
function exits(HTMLSelect, value) {
for (var i = 0; i < HTMLSelect.length; i++) {
if (HTMLSelect[i].value == value) {
return true;
}
}
return false;
}
//把空值去掉并把下面的选项移到上面来
function BumpUp(box) {
for (var i = 0; i < box.options.length; i++) {
if (box.options[i].value == "") {
for (var j = i; j < box.options.length - 1; j++) {
box.options[j].value = box.options[j + 1].value;
box.options[j].text = box.options[j + 1].text;
}
var ln = i;
break;
}
}
if (ln < box.options.length) {
box.options.length -= 1;
BumpUp(box);
}
}
function SortD(box) {
var temp_opts = new Array();
var temp = new Object();
for (var i = 0; i < box.options.length; i++) {
temp_opts[i] = box.options[i];
}
for (var x = 0; x < temp_opts.length - 1; x++) {
for (var y = (x + 1); y < temp_opts.length; y++) {
if (temp_opts[x].text > temp_opts[y].text) {
temp = temp_opts[x].text;
temp_opts[x].text = temp_opts[y].text;
temp_opts[y].text = temp;
temp = temp_opts[x].value;
temp_opts[x].value = temp_opts[y].value;
temp_opts[y].value = temp;
}
}
}
for (var i = 0; i < box.options.length; i++) {
box.options[i].value = temp_opts[i].value;
box.options[i].text = temp_opts[i].text;
}
}
/* 使用实例
<form ACTION="" METHOD="POST">
<table border="0">
<tr>
<td><select multiple size="7" name="list1" style="width:250px">
<option value="11"> item 1.1 </option>
<option value="12"> item 1.2 </option>
<option value="13"> item 1.3 </option>
</select></td>
<td>
<input type="button" value=" >> " οnclick="moveall('list1','list2')" name="B3">
<br/>
<input type="button" value=" > " οnclick="move('list1','list2')" name="B1">
<br/>
<input type="button" value=" < " οnclick="move('list2','list1')" name="B2">
<br/>
<input type="button" value=" << " οnclick="moveall('list2','list1')" name="B4">
</td>
<td><select multiple size="7" name="list2" style="width:250px">
<option value="21"> item 2.1 </option>
<option value="22"> item 2.2 </option>
<option value="23"> item 2.3 </option>
</select></td>
</tr>
</table>
</form>*/