请问用javascript怎么动态生成下拉列表框里的值?

frank1197 2006-04-28 11:09:29
比如我有10组下拉列表框,每组的值是[a,b,c,d]。如果有某一组选择了a,其他组则变成[b,c,d]。如果又有一组选择了b,则其他组则为[c,d],依次类推。。。

请问这个功能该如何实现啊?
有思路的能否提供个思路。。。恩。。当然。。有代码最好了,嘿嘿~~
...全文
433 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
钒米粒 2006-04-29
  • 打赏
  • 举报
回复
熟悉web2.0,blog,ajax,rss,.net2005等请进入
http://blog.csdn.net/datehr/category/198305.aspx
frank1197 2006-04-28
  • 打赏
  • 举报
回复
恩。。就是这个意思。。

能提供给代码啥的吗?我javascript很弱的说。。。
pangzi_707 2006-04-28
  • 打赏
  • 举报
回复
你的意思是如果被某一个已经选中的其它的就不能选了吗?
可以把数据都放在一个数组里面,当dropdownlist改变的时候去修改数组的内容,然后在添加到dropdownlist里面。
frank1197 2006-04-28
  • 打赏
  • 举报
回复
clare2003(忘情火) ?
frank1197 2006-04-28
  • 打赏
  • 举报
回复
恩。。发现个小问题。。。
如果不按顺序输入的话(比如,第一个列表是a,第二个列表示d)
则会报错。。
frank1197 2006-04-28
  • 打赏
  • 举报
回复
OK
可以了~!~!
多谢clare2003(忘情火)

结帖,给分~~!
10少了点,不过我就这么多分了,多谢~!!!!!!!!!!!!!!
clare2003 2006-04-28
  • 打赏
  • 举报
回复
function Init2()==>function Init()
clare2003 2006-04-28
  • 打赏
  • 举报
回复
document.g e t e l e m e n t s B y N a m e("mySel")//去掉空格就行
==>
document.get Elements ByName("mySel")//去掉空格就行

frank1197 2006-04-28
  • 打赏
  • 举报
回复
可以转了。。。
但数组里面的值没有被remove掉俄。。。
frank1197 2006-04-28
  • 打赏
  • 举报
回复
兄弟,好像还是不能转~!
IE也没报错。。。

你方便的话能加我MSN吗?我把整理好的那段代码给你发过去,你看看是哪的问题
frank1197@hotmail.com
clare2003 2006-04-28
  • 打赏
  • 举报
回复
document.g e t e l e m e n t s B y N a m e("mySel")//去掉空格就行
clare2003 2006-04-28
  • 打赏
  • 举报
回复

<body>
<div id="div1"></div>
<script>
var arr=[2]
arr[0]=['a','b','c','d'];
arr[1]=[0,0,0,0];
function addoption(parentobj,selobj)
{
for(var j=0;j<arr[0].length;j++)
{
if(arr[1][j]=="0")
{
selobj.add(new Option(arr[0][j],arr[0][j]));
parentobj.appendChild(selobj);
}
}

}
function Init2()
{
var obj=document.all.div1;
for(var i=0;i<10;i++)
{
var sel=document.createElement("<SELECT NAME='mySel' id='selid0'><SELECT>");
sel.add(new Option("--selected--","--selected--"));

// sel.name="mySel";
addoption(obj,sel);

sel.onchange=function()
{
if (this.selectedIndex>0)
{
arr[1][this.selectedIndex-1]=1
this.id="selid1";
var chgobj=document.g e t e l e m e n t s B y N a m e("mySel")
for(var k=0;k<chgobj.length;k++)
{ if(chgobj[k].id=="selid0")
{
for(var j=0;j<=chgobj[k].options.length;j++)
{
if(arr[1][j]==1)
{
chgobj[k].options[j+1].removeNode(true);

}
}
}


}
}


}
obj.appendChild(sel);
}

}
Init()
</script>
</body>

frank1197 2006-04-28
  • 打赏
  • 举报
回复
chgobj 这个数组是啥?好像没有定义
clare2003 2006-04-28
  • 打赏
  • 举报
回复
document.g e t e l e m e n t s B y N a m e("mySel")
clare2003 2006-04-28
  • 打赏
  • 举报
回复
this.id 后有一句粘贴不上说我的是非法言论之类
var chgobj=..
frank1197 2006-04-28
  • 打赏
  • 举报
回复
正在读这段代码。。。
不过IE打开这段代码好像是空白页
clare2003 2006-04-28
  • 打赏
  • 举报
回复

for(var k=0;k<chgobj.length;k++)
{ if(chgobj[k].id=="selid0")
{
for(var j=0;j<=chgobj[k].options.length;j++)
{
if(arr[1][j]==1)
{
chgobj[k].options[j+1].removeNode(true);

}
}
}


}
}


}
obj.appendChild(sel);
}

}
Init()
</script>
</body>
clare2003 2006-04-28
  • 打赏
  • 举报
回复
sel.onchange=function()
{
if (this.selectedIndex>0)
{
arr[1][this.selectedIndex-1]=1
this.id="selid1";
clare2003 2006-04-28
  • 打赏
  • 举报
回复
function Init2()
{
var obj=document.all.div1;
for(var i=0;i<10;i++)
{
var sel=document.createElement("<SELECT NAME='mySel' id='selid0'><SELECT>");
sel.add(new Option("--selected--","--selected--"));

// sel.name="mySel";
addoption(obj,sel);
frank1197 2006-04-28
  • 打赏
  • 举报
回复
selobj.add(new Option(arr[0][j],arr[0][j]));

Option里为何要传2个参数?

如果放便的话,能帖下完整的代码吗?
加载更多回复(4)

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧