根据下拉框的选择排序
///GroupMakeUp_UserID,待排序的框的实例
///sel,排序选择框
///
function InitSortCombox(GroupMakeUp_UserID, sel) {
if (sel != "undefine" && sel != null) {
var GroupMakeUp_UserIDSort = document.getElementById(sel);
//首先清空原有的值
GroupMakeUp_UserIDSort.options.length = 0;
CreateOption(GroupMakeUp_UserIDSort, "请选择", "0");
for (j = 0; j < GroupMakeUp_UserID.options.length; j++) {
//向GroupMakeUp_UserIDSort中添加项(排序框)
var s = GroupMakeUp_UserID.options[j].value.split("|");
if (Exists(GroupMakeUp_UserIDSort, s[0])) {
CreateOption(GroupMakeUp_UserIDSort, s[1], s[0]);
}
}
}
}
///排序
function Sort_GroupMakeUp_UserID(param, src) {
var oSel = document.getElementById(src);
// alert(param.value);
var arr = new Array(); // 这是关键部分
// 将select中的所有option的value值将保存在Array中
for (var i = 0; i < oSel.options.length; i++) {
// 如果需要对option中的文本排序,可以改为arr[i] = oSel.options[i].text;
arr[i] = { key: oSel.options[i].innerText, value: oSel.options[i].value };
}
//js Array排序
arr.sort(function(a, b) { return a.value.indexOf(param.value) == -1 ? 1 : -1; }); // 开始排序
// 清空Select中全部Option
oSel.options.length = 0;
// 将排序后的数组重新添加到Select中
for (i = 0; i < arr.length; i++) {
CreateOption(oSel, arr[i].key, arr[i].value);
}
}
//是否已经存在
function Exists(src, param) {
for (e = 0; e < src.options.length; e++) {
if (src.options[e].value == param) {
return false;
}
}
return true;
}
//创建新的OPTION对象
function CreateOption(src, text, value) {
var oOption = document.createElement("OPTION");
src.options.add(oOption);
oOption.innerText = text;
oOption.value = value;
}