select 取多值问题

我想在select中选择对应值后,让其在a1里显示出来,可是只能显示一个值,我想让a1里显示多个值,如何实现?代码如下:

//list为前面页面传过来的值,假设“name”值为a,b,c,d
${item.name }
/c:forEach

[b]问题补充:[/b]
如果不使用标签,代码如下:

a
b
c
d


这时候在select中选中“a”,则在a1里可以显示“a”,如果在select里再选“b",在a1里的值变为"ab",以此类推,我要实现的就是这功能,可是使用标签之后,在select里每次选完后,a1里的值只显示第一次在select里选的值,无法跟着变化,不知道说清楚没,希望大家帮忙解决一下,我以前没什么编程经验,现在遇到困难了,不知道咋解决,谢谢大家了。

你应该写个js方法

function changeValue(elem)
{

document.getElementById('a1').value+=elem.options[elem.selectedIndex].value;

}


//list为前面页面传过来的值,假设“name”值为a,b,c,d
${item.name }
/c:forEach

这样不是实现了么?每select一个会在a1里加一个,代码是对的

我想你的问题可以用多选下拉列表框解决,我把你的代码修改成如下:
//将下拉列表框设置为多选,显示条目size为4
//list为前面页面传过来的值,假设“name”值为a,b,c,d
${item.name }
/c:forEach

a1里显示多个值,你的意思是什么,是指下拉列表是多选的吗,

好像理解了LZ的意思了。

首先下拉菜单是可以多选的。

然后监听select时间,用JS把select选中的值动态的添加到a1中

看了你的问题补充,我想你的js方法应该这样写:

function changeValue(elem)
{

document.getElementById('a1').text+=elem.options[elem.selectedIndex].text;

}

你再试一下,不行留言。

上面的补充不太合适,楼上的老师写的就可以了,或者是以下的样子:

function changeValue(elem)
{

document.getElementById('a1').value+=elem.options[elem.selectedIndex].text;

}

你可以用调试器看看到底有没执行changeValue方法

document.getElementById('a1').value+=elem.options[elem.selectedIndex].text;

这种方式就是取[color=red]a[/color] 红色部分啦

是的。你的方式就是取前面的那个a,在js里两个都可以取到。我也有个问题有待解答,你比较有经验帮我看一下吧。问题是:Web项目怎样考虑用户级的问题,在问题区有的。