select控件 二级联动问题

shoumangli 2008-04-30 11:35:41
var array = new Array();

array[0] = new Array('1','1','= 总帐')
array[1] = new Array('1','2','= 进销存')
array[2] = new Array('1','3','=收付款')
array[3] = new Array('1','4','=固定资产')
array[4] = new Array('1','5','=MRP')
array[5] = new Array('1','6','=人事薪资')
array[6] = new Array('1','7','=考勤')
array[7] = new Array('1','8','=增值税')
array[8] = new Array('1','9','=TRD')
array[9] = new Array('2','10','=10')

function change_show(locationid)
{
document.getElementsByName("select2").length = 0; //清空数据
select2.options[0] = new Option('请选择','');

for (i = 0; i < array.length; i++)
{
if(array[i][0] == locationid)
{
select2.options[document.getElementsByName("select2").length] = new Option(array[i][2], array[i][1]);
}
}
}

<form name="form1" method="post" runat="server">
二级联动:

<select name="select1" onChange="changeselect1(this.value)">
<option>==请选择==</option>
<option value="1">A</option>
<option value="2">B</option>
</select>

<select name="select2" onChange="alert(this.value)">
<option></option>
</select>

</form>


高手请看,为什么这段代码无法触发子级select控件的值的显示;

有好的回答还可以加分的
这个问题问了两天了,哎,还没有解决
...全文
137 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jasononline 2008-05-06
  • 打赏
  • 举报
回复
<html>
<head>
</head>
<body>
<script>
var array = new Array();

array[0] = new Array('1','1','= 总帐')
array[1] = new Array('1','2','= 进销存')
array[2] = new Array('1','3','=收付款')
array[3] = new Array('1','4','=固定资产')
array[4] = new Array('1','5','=MRP')
array[5] = new Array('1','6','=人事薪资')
array[6] = new Array('1','7','=考勤')
array[7] = new Array('1','8','=增值税')
array[8] = new Array('1','9','=TRD')
array[9] = new Array('2','10','=10')

function change_show(locationid)
{
var obj2=document.getElementById("select2");

//清空数据
obj2.length=0;
obj2.options.add(new Option('请选择', ''));


for (i = 0; i < array.length; i++)
{
if(array[i][0] == locationid)
{
obj2.options.add(new Option(array[i][2], array[i][1]));
}
}
}
</script>
<form name="form1" method="post" runat="server">
二级联动:

<select name="select1" onChange="change_show(this.value)">
<option>==请选择== </option>
<option value="1">A </option>
<option value="2">B </option>
</select>

<select id="select2" onChange="alert(this.value)">
<option> </option>
</select>

</form>

</body>
</html>
jamesfay 2008-04-30
  • 打赏
  • 举报
回复
没有js错误?
jasononline 2008-04-30
  • 打赏
  • 举报
回复
不用Onchange事件,用onpropertychange事件试试
shoumangli 2008-04-30
  • 打赏
  • 举报
回复
我修改了哈,可以实现了,但是效果不好,
“10”的显示在下面不能提前
shoumangli 2008-04-30
  • 打赏
  • 举报
回复
有这个的<head runat="server">

哎,就是不行啊,是不是要添加什么另外的文件的啊,
回.到.未来 2008-04-30
  • 打赏
  • 举报
回复
最上面少了
<head runat="server">
回.到.未来 2008-04-30
  • 打赏
  • 举报
回复
不会啊,我这都可以了啊
shoumangli 2008-04-30
  • 打赏
  • 举报
回复
哎,按你的改了,也不行啊,
郁闷了,
回.到.未来 2008-04-30
  • 打赏
  • 举报
回复
select2.options[0]这样当然不行

<script language=javascript>
var array = new Array();

array[0] = new Array('1','1','= 总帐')
array[1] = new Array('1','2','= 进销存')
array[2] = new Array('1','3','=收付款')
array[3] = new Array('1','4','=固定资产')
array[4] = new Array('1','5','=MRP')
array[5] = new Array('1','6','=人事薪资')
array[6] = new Array('1','7','=考勤')
array[7] = new Array('1','8','=增值税')
array[8] = new Array('1','9','=TRD')
array[9] = new Array('2','10','=10')

function change_show(locationid)
{

document.getElementById("select2").length = 0; //清空数据
document.getElementById("select2").options[0] = new Option('请选择','');

for (i = 0; i < array.length; i++)
{
if(array[i][0] == locationid)
{
document.getElementById("select2").options[document.getElementById("select2").length] = new Option(array[i][2], array[i][1]);
}
}
}
</script>
</head>
<body>


<form id="Form1" method=post runat="server">
二级联动:

<select id="select1" onchange="change_show(this.value)">
<option>==请选择== </option>
<option value="1">A </option>
<option value="2">B </option>
</select>

<select id="select2" onchange="alert(this.value)">
<option> </option>
</select>

</form>
</body>
shoumangli 2008-04-30
  • 打赏
  • 举报
回复
哦,谢谢,
不过改正了之后还是不行
能不能帮我看看有没有别的语法错误哦

我js我不是很熟的
xiaoyi1234 2008-04-30
  • 打赏
  • 举报
回复
var array = new Array();

array[0] = new Array('1','1','= 总帐')
array[1] = new Array('1','2','= 进销存')
array[2] = new Array('1','3','=收付款')
array[3] = new Array('1','4','=固定资产')
array[4] = new Array('1','5','=MRP')
array[5] = new Array('1','6','=人事薪资')
array[6] = new Array('1','7','=考勤')
array[7] = new Array('1','8','=增值税')
array[8] = new Array('1','9','=TRD')
array[9] = new Array('2','10','=10')

function change_show(locationid)
{
document.getElementsByName("select2").length = 0; //清空数据
select2.options[0] = new Option('请选择','');

for (i = 0; i < array.length; i++)
{
if(array[i][0] == locationid)
{
select2.options[document.getElementsByName("select2").length] = new Option(array[i][2], array[i][1]);
}
}
}

<form name="form1" method="post" runat="server">
二级联动:

<select name="select1" onChange="changeselect1(this.value)">
<option>==请选择== </option>
<option value="1">A </option>
<option value="2">B </option>
</select>

<select name="select2" onChange="alert(this.value)">
<option> </option>
</select>

</form>


注意函数 名称
shoumangli 2008-04-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jasononline 的回复:]
不用Onchange事件,用onpropertychange事件试试
[/Quote]

换了也不行哦
shoumangli 2008-04-30
  • 打赏
  • 举报
回复
不知道有没有js错误哦