在java中,常用的下拉框信息的移动,例如:多选框信息移动到多选框,多选框信息移动到单选框等。
1.多选框信息移动到多选框(一个名字为kexuan可选下拉框,一个名字为yixuan的下拉框):
<select size="20" name="kexuan" multiple style="width:165; height:120" />
<option>----可选----</option> </select>
<select size="20" name="yixuan" multiple style="width:165; height:120" />
<option>----已选----</option> </select>
两个按钮,一个名称addbt的按钮,是将可选信息添加到已选信息的按钮。另一个名字为delbt的按钮,是将已选信息,重新移回到可选中:
<input type="button" name="addbt" value="添加"/>
<input type="button" name="delbt" value="删除"/>
选中你需添加的可选信息,点击添加按钮即可。
<input type="button" name="addbt" value="添加" οnclick="addSlt(form的名称,'kexuan','yixuan');"/>
在已选总,选中需删除的信息,点击删除按钮即可,已选信息将会重新回到可选中。
<input type="button" name="delbt" value="删除" οnclick="addSlt(form的名称,'yixuan','kexuan');"/>
(注:添加和删除可调用同一个方法,只是传入的对象不同。)
显示的js代码如下:
function addSlt(frmname,keslt,yislt){
var ks = windows.document.forms[frmname].elements[keslt];
var ys = windows.document.forms[frmname].elements[yislt];
var m=0;
var n=1;
var arrT=new Array(ks.length);
var arrV=new Array(ks.length);
for(var i=0;i<ks.length;i++){
if(ks.options[i].selected=true){
m=0;
for(var j=0;j<ys.length;j++){
if(ks.options[i].value==ys.options[j].value){
m++;
break;
}
}
if(m==0){
ys.length++;
ys.options[ys.length-1].value=ks.options[i].value;
ys.options[ys.legnth-1].text=ks.options[i].text;
}
}else{
arrT[j]=ks.options[i].text;
arrv[j]=ks.options[i].value;
n++;
}
}
if(n!=ks.length){
ks.length=1;
for(var i=0;i<n;i++){
ks.options[i].value=arrV[i];
ks.options[i].text=arrT[i];
}
}
}
2.多选框的信息添加到单选框。将可选的要素选中,添加到单选框中:
<select name="danxuan">
<option>--单选--</option>
</select>
<input type="button" name="dxaddbt" value="添加到单选" οnclick="dxaddSlt(frmname,'kexuan','danxuan');"/>
js方法,如下:
function dxaddSlt(frmname,kxslt,dxslt){
var kx = windows.document.forms[frmname].elements[kxslt];
var dx = windows.document.forms[frmname].elements[dxslt];
var t=0;
for(var i=0;i<kx.length;i++){
if(kx.options[i].selected==true){
t=0;
for(var j=0;j<dx.length;j++){
if(kx.options[i].value==dx.options[j].value){
t++;
break;
}
}
if(t==0){
dx.length++;
dx.options[dx.length-1].value=kx.options[i].value;
dx.options[dx.length-1].text=kx.options[i].value;
}
}
}
}
这个方法与第一个方法大同小异。
3.若在第一个多选框到多选框中,删除的时候,同时删除单选框中存在的值。方法如下:
function deldx(frmname,yxslt,dxslt){
var yx=windows.document.forms[frmname].elements[yxslt];
var dx=windows.document.forms[frmname].elements[dxslt];
for(var i=0;i<yx.length;i++){
for(var j=0;j<dx.length;j++){
if(yx.options[i].selected==true){
if(yx.options[i].value==dx.options[j].value){
dx.options[j].removeNode(true);
}
}
}
}
}
以上方法仅供参考。