由于需求需要
需要做2个mutiply形的select
一个表示可选分类listbox1
一个标识已选分类listbox2
可以通过button实现添加和删除(我是通过一下方法实现)
function AddOption()
{
document.getElementById("ListBox2").appendChild(document.getElementById("ListBox1").options[document.getElementById("ListBox1").selectedIndex]);
document.getElementById("ListBox1").removeChild(document.getElementById("ListBox1").options[document.getElementById("ListBox1").selectedIndex]);
}
function DeleteOption()
{
document.getElementById("ListBox1").appendChild(document.getElementById("ListBox2").options[document.getElementById("ListBox2").selectedIndex]);
document.getElementById("ListBox2").removeChild(document.getElementById("ListBox2").options[document.getElementById("ListBox2").selectedIndex]);
}
同时需要将 已选分类listbox2 里的所有值回传到服务器(主要是要知道如何实现这个,下面的为我自己实现时候出现的问题,能够回答最好,不能回答也无所谓)
在做回传的时候我碰到了一个问题
就是如果通过javascript添加select的option后
for (i=0 ; i<document.getElementById("ListBox2").length;i++)
这样遍历就会出异常
而为什么出我不打清楚
在提交之前执行一下for循环,先把ListBox2的所有项的selected设置为true,然后再执行submit事件,这样就可以把所有ListBox2的项都提交到服务器端了
学习。。
for (i=0 ; i<document.getElementById("ListBox2").length;i++)
你是想遍历select还是options?
如果想遍历options,应该是
for (i=0 ; i<document.getElementById("ListBox2").options.length;i++)
你遍历这些options的时候,把他们的值拼凑起来,比如用逗号隔开,然后放在一个hidden里面
没学JS学习下
通过javascript在服务器端来改变某些服务器端控件(例如listbox)的值,在服务器端listbox的值会被Viewstate还原,推荐使用拼凑字符串的方式