详细问题:
一个表格有2列
部门下拉菜单 人员下拉菜单
部门下拉菜单 人员下拉菜单
部门下拉菜单 人员下拉菜单
部门下拉菜单 人员下拉菜单
部门下拉菜单 人员下拉菜单
部门下拉菜单 人员下拉菜单
部门下拉菜单 人员下拉菜单其中部门下拉菜单名称都是depts 人员下拉菜单名称都是 men 改变某个部门下拉菜单时 相应的改变人员下拉菜单!
一个表格有2列
部门下拉菜单 人员下拉菜单
部门下拉菜单 人员下拉菜单
部门下拉菜单 人员下拉菜单
部门下拉菜单 人员下拉菜单
部门下拉菜单 人员下拉菜单
部门下拉菜单 人员下拉菜单
部门下拉菜单 人员下拉菜单其中部门下拉菜单名称都是depts 人员下拉菜单名称都是 men 改变某个部门下拉菜单时 相应的改变人员下拉菜单!
var subcat = new Array();
subcat[0] = new Array("广?","服?中心","服?中心","BG01","06","0601");
subcat[1] = new Array("河北","前台接待","前台接待","BG02","06","0602");
subcat[2] = new Array("河南","??部","??部","BK02","12","1202");
subcat[3] = new Array("湖北","???算部","???算部","BK01","12","1201"); function changeselect1(locationid)
{
document.form1.SDepart.length = 0;
for (i=0; i<subcat.length; i++)
{
if (subcat[i][0] == locationid)
{
var op = new Option(subcat[i][1], subcat[i][2]);
op.id = subcat[i][1];
document.form1.SDepart.options[document.form1.SDepart.length] = op; //此行生成新的Option
}
}
}
</script><form name=form1>
<select name="BDepart" onChange="changeselect1(this.value)">
<option value="广?">广?</option>
<option value="河北">河北</option>
<option value="河北">河南</option>
<option value="河北">湖南</option>
</select>
<select name=SDepart></select>
</form>
<input type=button value=innerHTML onclick="alert(document.form1.SDepart.innerHTML)">
var subcat = new Array();
subcat[0] = new Array("广?","服?中心","服?中心","BG01","06","0601");
subcat[1] = new Array("河北","前台接待","前台接待","BG02","06","0602");
subcat[2] = new Array("河南","??部","??部","BK02","12","1202");
subcat[3] = new Array("湖北","???算部","???算部","BK01","12","1201"); function changeselect1(locationid)
{
document.form1.SDepart.length = 0;
for (i=0; i<subcat.length; i++)
{
if (subcat[i][0] == locationid)
{
var op = new Option(subcat[i][1], subcat[i][2]);
op.id = subcat[i][1];
document.form1.SDepart.options[document.form1.SDepart.length] = op; //此行生成新的Option
}
}
}
</script><form name=form1>
<select name="BDepart" onChange="changeselect1(this.value)">
<option value="广?">广?</option>
<option value="河北">河北</option>
<option value="河北">河南</option>
<option value="河北">湖南</option>
</select>
<select name=SDepart></select>
</form>
<input type=button value=innerHTML onclick="alert(document.form1.SDepart.innerHTML)">
10个部门的SELECT对应10个人员的SELECT啊
这个问题帮我搞顶就100分全给了
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>新しいページ 1</title>
</head><body><script language="javascript">
var memberList = new Array();
memberList[0] = new Array();
memberList[1] = new Array();
memberList[2] = new Array();
memberList[3] = new Array();
memberList[4] = new Array();
memberList[5] = new Array();
memberList[6] = new Array();
memberList[7] = new Array();
memberList[8] = new Array();
memberList[9] = new Array();
memberList[0][0] = "1";
memberList[0][1] = "人员1-1";
memberList[1][0] = "1";
memberList[1][1] = "人员1-2";
memberList[2][0] = "1";
memberList[2][1] = "人员1-3";
memberList[3][0] = "2";
memberList[3][1] = "人员2-1";
memberList[4][0] = "2";
memberList[4][1] = "人员2-2";
memberList[5][0] = "2";
memberList[5][1] = "人员2-3";
memberList[6][0] = "3";
memberList[6][1] = "人员3-1";
memberList[7][0] = "3";
memberList[7][1] = "人员3-2";
memberList[8][0] = "3";
memberList[8][1] = "人员3-3"; function doChange(i,obj){
var dept = obj.value;
var n;
for(n=document.forms(0).men(i).options.length-1;n>=0;n--){
document.forms(0).men(i).options.remove(n);
}
var opValue = 0;
for(n=0;n<9;n++){
if(memberList[n][0]==dept){
var oOption = document.createElement("OPTION");
document.forms(0).men(i).options.add(oOption);
oOption.innerText = memberList[n][1];
oOption.value = opValue++;
}
}
}</script>
<form method="POST" action="--WEBBOT-SELF--">
<!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.txt"
S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="50%"><select size="1" name="depts" onChange="doChange(0,this)">
<option value="1">部门1</option>
<option value="2">部门2</option>
<option value="3">部门3</option>
</select></td>
<td width="50%"><select size="1" name="men">
<option value="1">人员1-1</option>
<option value="2">人员1-2</option>
<option value="3">人员1-3</option>
</select></td>
</tr>
<tr>
<td width="50%"><select size="1" name="depts" onChange="doChange(1,this)">
<option value="1">部门1
<option value="2">部门2</option>
<option value="3">部门3</option>
</select></td>
<td width="50%"><select size="1" name="men">
<option value="1">人员1-1</option>
<option value="2">人员1-2</option>
<option value="3">人员1-3</option>
</select></td>
</tr>
<tr>
<td width="50%"><select size="1" name="depts" onChange="doChange(2,this)">
<option value="1">部门1
<option value="2">部门2</option>
<option value="3">部门3</option>
</select></td>
<td width="50%"><select size="1" name="men">
<option value="1">人员1-1</option>
<option value="2">人员1-2</option>
<option value="3">人员1-3</option>
</select></td>
</tr>
</table>
<p> </p>
</form></body></html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>新しいページ 1</title>
</head><body><script language="javascript">
var memberList = new Array();
memberList[0] = new Array();
memberList[1] = new Array();
memberList[2] = new Array();
memberList[3] = new Array();
memberList[4] = new Array();
memberList[5] = new Array();
memberList[6] = new Array();
memberList[7] = new Array();
memberList[8] = new Array();
memberList[9] = new Array();
memberList[0][0] = "1";
memberList[0][1] = "人员1-1";
memberList[1][0] = "1";
memberList[1][1] = "人员1-2";
memberList[2][0] = "1";
memberList[2][1] = "人员1-3";
memberList[3][0] = "2";
memberList[3][1] = "人员2-1";
memberList[4][0] = "2";
memberList[4][1] = "人员2-2";
memberList[5][0] = "2";
memberList[5][1] = "人员2-3";
memberList[6][0] = "3";
memberList[6][1] = "人员3-1";
memberList[7][0] = "3";
memberList[7][1] = "人员3-2";
memberList[8][0] = "3";
memberList[8][1] = "人员3-3"; function doChange(i,obj){
var dept = obj.value;
var n;
for(n=document.forms(0).men(i).options.length-1;n>=0;n--){
document.forms(0).men(i).options.remove(n);
}
var opValue = 0;
for(n=0;n<9;n++){
if(memberList[n][0]==dept){
var oOption = document.createElement("OPTION");
document.forms(0).men(i).options.add(oOption);
oOption.innerText = memberList[n][1];
oOption.value = opValue++;
}
}
}</script>
<form method="POST" action="--WEBBOT-SELF--">
<!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.txt"
S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<%
for(int i=0;i<10;i++){
%>
<tr>
<td width="50%"><select size="1" name="depts" onChange="doChange(<%=i%>,this)">
<option value="1">部门1</option>
<option value="2">部门2</option>
<option value="3">部门3</option>
</select></td>
<td width="50%"><select size="1" name="men">
<option value="1">人员1-1</option>
<option value="2">人员1-2</option>
<option value="3">人员1-3</option>
</select></td>
</tr>
<%
}
%>
</table>
<p> </p>
</form></body></html>
我的情况比较特殊 希望在CHANGE事件里来得到你这的I值 可以吗?
还有 怎么样可以取到SELECT控件数组的个数?
比如取 名为depts的SELECT控件有多少个? 不能用FormName.depts.length来取 这个取到的是第一个depts控件的option的个数
var city=new Array();city[1] = new Array("北京市","0","1");city[2] = new Array("上海市","0","2");city[3] = new Array("天津市","0","3");city[4] = new Array("重庆市","0","4");city[5] = new Array("合肥","21","6");city[6] = new Array("芜湖","21","7");city[7] = new Array("马鞍山","21","8");city[8] = new Array("蚌埠","21","10");city[9] = new Array("淮南","21","11");city[10] = new Array("淮北","21","12");city[11] = new Array("铜陵","21","13");city[12] = new Array("安庆","21","14");city[13] = new Array("黄山","21","15");city[14] = new Array("滁州","21","16");city[15] = new Array("阜阳","21","17");city[16] = new Array("宿州","21","18");city[17] = new Array("巢湖","21","19");city[18] = new Array("六安","21","20");city[19] = new Array("毫州","21","21");city[20] = new Array("池州","21","22");city[21] = new Array("宣城","21","23");city[22] = new Array("石家庄市","8","25");city[23] = new Array("唐山市","8","26");......var count=city.length;
function changelocation(locationid)
{
document.all["cityid"].length = 0;
var i;
var found;
for (i=1;i < count; i++)
{
if (city[i][1] == locationid)
{
found=true;
document.all["cityid"].options[0] = new Option("其它", "388");
document.all["cityid"].options[document.all["cityid"].length] = new Option(city[i][0], city[i][2]);
}
}
if(!found){
document.all["cityid"].options[document.all["cityid"].length] = new Option("---请选择---", "0");
document.all["showcity"].style.display="none";
}else{
document.all["showcity"].style.display="";
document.all["cityid"].selectedIndex=0;
}
}
function showcity(){
if(document.all["nocity"].checked){
document.all["cityid"].style.display="none";
}else{
document.all["cityid"].style.display="";
}
}
</script>
<select name="provinceid" id="proviceid" onChange="changelocation(document.all['proviceid'].options[document.all['proviceid'].selectedIndex].value)">
<option value="-1">请选择所在地</option>
<option value="1" >北京</option><BR><option value="2" >上海</option><BR><option value="3" >天津</option><BR><option value="4" >重庆</option><BR><option value="5" >台湾</option><BR><option value="6" >澳门</option><BR><option value="7" >香港</option><BR><option value="8" >河北</option><BR><option value="9" >山西</option><BR><option value="10" >内蒙古</option><BR><option value="11" >辽宁</option><BR><option value="12" >吉林</option><BR><option value="13" >江苏</option><BR><option value="14" >浙江</option><BR><option value="15" >福建</option><BR><option value="16" >江西</option><BR><option value="17" >山东</option><BR><option value="18" >河南</option><BR><option value="19" >湖北</option><BR><option value="20" >湖南</option><BR><option value="21" >安徽</option><BR><option value="22" >广东</option><BR><option value="23" >广西</option><BR><option value="24" >海南</option><BR><option value="25" >四川</option><BR><option value="26" >贵州</option><BR><option value="27" >云南</option><BR><option value="28" >陕西</option><BR><option value="29" >甘肃</option><BR><option value="30" >青海</option><BR><option value="31" >宁夏</option><BR><option value="32" >新疆</option><BR><option value="33" >西藏</option><BR><option value="34" >东亚</option><BR><option value="35" >西亚</option><BR><option value="36" >北美</option><BR><option value="37" >南美</option><BR><option value="38" >欧洲</option><BR><option value="39" >非洲</option><BR><option value="40" >大洋州</option><BR>
</select>
<label id="showcity" >
<select name="cityid" id="cityid">
<input name="nocity" type="checkbox" value="1" onClick="showcity()">忽略子级<script language='javascript'>showcity();</script>
</select>
</label>
<script language="javascript">
changelocation(document.all["proviceid"].options[document.all["proviceid"].selectedIndex].value);
</script>
{
if (thisForm.item("dept"+i)(j).uniqueID == control.uniqueID) {break;}
}
controlToPopulate = thisForm.item("pname"+i)(j);
try
{
var tempq=controlToPopulate.options.length
}
catch(e)
{
controlToPopulate = thisForm.item("pname"+i);
}
我自己搞定了 把这段加到CHANGE事件里 thisForm.item("Bu"+i)是我加的一个辅助的HIDDEN控件
通过FOR循环来得到我点的是哪个 uniqueID只有动态添加的控件才有这个属性
TRY和CATCH来判断控件是单独的一个还是复数个(即数组的情况)(0个的情况不可能触发change事件所以不考虑)