站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Javascript 专题用Javascript实现两个列表框连动

用Javascript实现两个列表框连动

摘要: 用Javascript实现两个列表框连动
<textarea readonly style="border:none;font-family:Courier New;line-height:150%;width:760px;overflow-y:visible">
//colCls----′óàà?ˉo?
//êy?Y??áD·?ê?£o′óààID-′óàà??
var colCls = new Array();
//colSubCls----?ùóDμ?×óàà?ˉo?
//êy?Y??áD·?ê?£o′óààID-×óààID-×óàà??
var colSubCls = new Array();
<%
Set rsClass = SelectQuery(conn,"select * from t_industrycls",True)
nCount = rsClass.RecordCount
For i=0 To nCount
%>
colCls[<%=i%>] = new Array("<%=rsClass("id")%>","<%=trim(rsClass("name"))%>");
<%
rsClass.MoveNext
If rsClass.Eof Then Exit For
Next
CloseObject rsClass
%>
//subclass
<%
Set rsClass = SelectQuery(conn,"t_industrysubcls",True)
nCount = rsClass.RecordCount
For i=0 To nCount
%>
colSubCls[<%=i%>] = new Array("<%=rsClass("clsid")%>","<%=rsClass("id")%>","<%=trim(rsClass("name"))%>");
<%
rsClass.MoveNext
If rsClass.Eof Then Exit For
Next
CloseObject rsClass
%>
/*
oˉêy??£oInitClsCtrl
1|?ü?μ?÷£o
1?¢ó?′óààIDì?3?id?asNameμ?áD±í?ò
2?¢2¢???D′óààáD±í?ò?Dvalue?anSelIdμ?????
2?êy?μ?÷£o
sName------′óààáD±í?òμ???×?
nSelId-----òa???Dμ?′óààID
*/
function InitClsCtrl(sName,nSelId)
{
var oClass;
oClass = document.getElementById(sName);
var nLen = colCls.length;
while (oClass.options.length>0)
{
oClass.options.remove(0);
}

for (var i = 0; i {
var oOption = new Option(colCls[i][1],colCls[i][0]);
oClass.add(oOption);
}
if (arguments.length<2)
oClass.options[0].selected = true;
else
{
nLen = oClass.length;
for (var i = 0; i {
if (oClass.options[i].value==nSelId)
{
oClass.options[i].selected = true;
break;
}
}
}
}

/*
oˉêy??£oInitSubClsCtrl
1|?ü?μ?÷£o
1?¢ó?ê?óú′óààIDμ?×óààì?3?id?asNameμ?áD±í?ò
2?¢2¢???D×óààáD±í?ò?Dvalue?anSelIdμ?????
2?êy?μ?÷£o
sName------×óààáD±í?òμ???×?
nClsId-----′óààID
nSelId-----òa???Dμ?×óààID
*/
function InitSubClsCtrl(sName,nClsId,nSelId)
{
var oSub;
oSub = document.getElementById(sName);
//??′óààID?anClsIdμ?×óàà?óè?áD±í?ò
var nLenCls = colCls.length;
var nLenSub = colSubCls.length;
if (arguments.length<2)
nClsId = colCls[0][0];
while (oSub.options.length>0)
{
oSub.options.remove(0);
}

for (var i=0; i {
for (var j=0; j {
if (nClsId == colCls[i][0]&&colCls[i][0]==colSubCls[j][0])
{
var oOption = new Option(colSubCls[j][2],colSubCls[j][1]);
oSub.add(oOption);
}
}
}
if (arguments.length<3)
oSub.options[0].selected = true;
else
{
nLen = oSub.length;
//??ID?anSelIdμ?×óàà???D
for (var j=0; j {
if (nSelId == oSub.options[j].value)
{
oSub.options[j].selected=true;
return;
}
}
}
}
表结构:大类: id,name ---------- 子类 id,clsid,name 使用方法:假设大类列表框id为clsid,子类列表框名为subclsid 先初始化列表框 InitClsCtrl("clsid"); InitSubClsCtrl("subclsid"); 大类列表框的onChange="InitSubClsCtrl('subclsid',this.value)"
</textarea>
↑返回目录
前一篇: 把javascript,vbscript中得数组传递给COM组件(or Activex)
后一篇: asp.net服务器端控件+javascript