二个列表传值问题,各位费时间帮下忙,谢谢!

twoweiaini 2007-01-09 05:18:15
function moveOption(e1, e2){
var e;
var right = true;
var es = new Array();
for(var i = 0;i<e1.length;i++){
if(e1.options[i].selected){
e=e1.options[i];
for(var i = 0;i < es.length;i++){
if(e.value==es[i])
{
alert("已有联系人");
right=false;
break;
}
}
if(right&&e1.options[i].selected){
es.push(e.value);
e2.options.add(new Option(e.text, e.value));
}
}
}
}
以上是一个在列表1中选择一个或多个值移动到列表2的脚本,不过程序不好使:(。
我想在一个列表中选择一个或多个值,点移动后,会在另外一个列表中显示,比如列表1中有aa,bb,cc,dd。如果我选aa移动到列表2中,移动后,再次在列表1中选aa移动到列表2,会提示已经有数据aa了。或者列表2中已经有aa,我再列表1中选择aa,bb,cc一起移动时,也会提示已经有数据aa了。
谁可以费时间帮下忙,我弄一天也没弄明白。。。。
...全文
176 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
twoweiaini 2007-01-09
  • 打赏
  • 举报
回复
怎么能把这个贴子关了。。。。我找不到地方。。。
twoweiaini 2007-01-09
  • 打赏
  • 举报
回复
原来加个判断就可以了。。自己弄明白了。。
twoweiaini 2007-01-09
  • 打赏
  • 举报
回复
function moveOption(e1, e2){
var right = true;
var es = [];
for(var i =0;i<e2.length;i++){
es[i]=e2.optionsp[i].value;
}
for(var i = 0;i<e1.length;i++){
if(e1.options[i].selected){
for(var k =0;k<es.length;k++){
if(es[k]==e1.options[i].value)
{
right=false;
break;
}
}
if(right)
{

e2.options.add(new Option(e1.options[i].text, e1.options[i].value));
}
}
}
}
自己改了下,我先把列表2的值循环给数组es,然后当列表1的值被选后和数组es的值循环比较,可这次结果是只能移动一次值,无论第二次移动列表1中哪个,都无法在列表2中显示。。愁死我了。。。我再继续自己想,也等待哪位朋友可以帮忙,虽然小问题,但也把我难住了,哎。
cloudgamer 2007-01-09
  • 打赏
  • 举报
回复
twoweiaini 2007-01-09
  • 打赏
  • 举报
回复
哪位朋友帮下忙。。。

87,922

社区成员

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

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