📄 select.js.vm
字号:
<SCRIPT LANGUAGE="JavaScript">
## fbox - 待选项目列表
## tbox - 选择了的项目列表
function move(fbox,tbox)
{
for(var i=0; i<fbox.options.length; i++)
{
if(fbox.options[i].selected && fbox.options[i].value != "")
{
## 增加项目列表到tbox
var no = new Option();
no.value = fbox.options[i].value
no.text = fbox.options[i].text
tbox.options[tbox.options.length] = no;
## 清空fbox的项目列表,但是如果是单选时不清掉现在的项目
fbox.options[i].value = ""
fbox.options[i].text = ""
}
}
BumpUp(fbox);
SortD(tbox);
}
function moveAll(fbox,tbox)
{
for(var i=0; i<fbox.options.length; i++)
{
if(fbox.options[i].value != "")
{
## 增加项目列表到右侧
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);
SortD(tbox);
}
## 清除空的项目列表
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.text = temp_opts[x].text
temp.value = temp_opts[x].value
temp_opts[x].text = temp_opts[y].text
temp_opts[x].value = temp_opts[y].value
temp_opts[y].text = temp.text
temp_opts[y].value = temp.value
}
}
}
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
}
/*
##排序
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.text = temp_opts[x].text
temp.value = temp_opts[x].value
temp_opts[x].text = temp_opts[y].text
temp_opts[x].value = temp_opts[y].value
temp_opts[y].text = temp.text
temp_opts[y].value = temp.value
}
}
}
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
}
*/
}
function moveUp(obj)
{
with (obj)
{
if(selectedIndex==0)
{
/*options[length]=new Option(options[0].text,options[0].value)
options[0]=null
selectedIndex=length-1
*/
}
else if(selectedIndex>=1)
{
moveG(obj,-1)
}
}
}
function moveDown(obj)
{
with (obj)
{
if(selectedIndex==length-1)
{
/*
var otext=options[selectedIndex].text
var ovalue=options[selectedIndex].value
for(i=selectedIndex; i>=1; i--)
{
options[i].text=options[i-1].text
options[i].value=options[i-1].value
}
options[i].text=otext
options[i].value=ovalue
selectedIndex=0
*/
}
else if(selectedIndex>=0 && selectedIndex<length-1)
moveG(obj,+1)
}
}
function moveG(obj,offset)
{
with (obj)
{
desIndex=selectedIndex+offset
var otext=options[desIndex].text
var ovalue=options[desIndex].value
options[desIndex].text=options[selectedIndex].text
options[desIndex].value=options[selectedIndex].value
options[selectedIndex].text=otext
options[selectedIndex].value=ovalue
selectedIndex=desIndex
}
}
function initSource(leftSource,rightTarget){
leftSource.length=0;
var class_arr_id="$!jsSelect.strSourceIDList";
var class_arr_val="$!jsSelect.strSourceValList";
var strIDArr=class_arr_id.split(",");
var strValArr=class_arr_val.split(",");
for(var i=0;i<strIDArr.length;i++)
{
##要判断是不是单选,如果是单选,则source中的值重复不需要去掉
if(strIDArr[i])
{
if(!checkInListArray(strIDArr[i],rightTarget))
{
myEle = document.createElement("option") ;
myEle.value = strIDArr[i] ;
myEle.text = strValArr[i];
leftSource.add(myEle) ;
}
}
}
}
function initTarget(strIDList)
{
var class_arr_id="$!jsSelect.strTargetIDList";
var class_arr_val="$!jsSelect.strTargetValList";
var strIDArr=class_arr_id.split(",");
var strValArr=class_arr_val.split(",");
var strIDListArr=strIDList.split(",");
##左边必须是右边的子集
for(var start_i=0;start_i<=strIDListArr.length;start_i++)
{
//if(checkInArray(strIDListArr[start_i],strIDArr))
{
##如果值合法
if(strValArr[start_i])
{
//alert(i);
##不要判断是不是单选
myEle = document.createElement("option") ;
myEle.value = strIDArr[start_i];
myEle.text = strValArr[start_i];
document.frmSelect.target.add(myEle) ;
}
}
}
}
function checkInListArray(id,rightTarget)
{
var returnVal=false;
id=id*1;
if(id>0)
{
for(i=0;i<rightTarget.length;i++)
{
if(id==rightTarget.options[i].value)
{
returnVal=true;
break;
}
}
}
else
{
returnVal=true;
}
return returnVal;
}
function checkInArray(id,strArray)
{
var returnVal=false;
id=id*1;
if(id>0)
{
for(i=0;i<strArray.length;i++)
{
if(id==strArray[i])
{
returnVal=true;
break;
}
}
}
else
{
returnVal=false;
}
return returnVal;
}
function selectSubmit(selectName)
{
var returnHiddenID=',';
var hiddenName=',';
for(i=0;i<selectName.length;i++)
{
returnHiddenID+=selectName.options[i].value+',';
hiddenName+=selectName.options[i].text+',';
}
parent.window.returnValue= returnHiddenID+"#"+hiddenName;
window.close();
}
function getStrIDList(tbox)
{
var rtn = "";
if(tbox.length>0)
{
rtn = tbox.options[0].value;
for(var i=1;i<tbox.length;i++)
{
if(tbox.options[i].value>0)
{
rtn += ","+tbox.options[i].value;
}
}
}
return rtn;
}
function onSearch(obj,tbox)
{
obj.value = getStrIDList(tbox);
return true;
}
</SCRIPT>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -