我在JSP中工作,我很新,并尝试从一个选择框中提交值,该选择框可以为Java中的操作类选择多个值。
<select multiple="multiple" name="ProjectIDs" listKey="projectID" listValue="name" id='lstBox2' style="min-width:150px">
</select>
目前我能够选择多个值并将键传递给我的动作类中名为“ProjectIDs”的List变量,这就是我想要做的。但我想加载该选择框中的所有值而不必突出显示它们。这是因为选择框中的值是使用javascript和从该选择框将选定值传输到此选择框的按钮从另一个选择框加载的。所以我不必在这个选择框中选择值,因为我总是要加载所有这些值。
当我点击提交按钮时,在选择框中预先选择所有值的最简单方法是什么,这样我就不必自己突出显示它们了?
谢谢!对不起,如果我的解释不是很清楚。我会进一步解释是否是这种情况。
编辑:我已根据提供的答案做了一些更改。我也在使用Struts框架。所以我的选择框从一个空的struts选择框开始,然后从另一个struts选择框中填充。
<s:select list="#{}" multiple="true" name="ProjectIDs" listKey="projectID" listValue="name" id='lstBox2' style="min-width:150px"/>
然后在我的表单标签中添加了这个onsubmit函数:
<s:form id="formMain" action="performancereport" theme="simple" method="get" onsubmit="selectAllOptions('lstbox2');">
然后最后这个javascript函数:
function selectAllOptions(selStr)
{
var selObj = document.getElementById(selStr);
for (var i=0; i<selObj.options.length; i++) {
selObj.options[i].selected = true;
}
}
但是,我仍然遇到同样的问题。如果我自己突出显示所有选项,它可以正常工作,但是当我点击提交按钮时它不会自动为我选择它们。
有什么建议吗?
编辑2:已解决。
答案 0 :(得分:1)
您可以使用javascript
以编码方式选择所有选项:
var select = document.getElementById("lstBox2");
for(var i = 0; i < select.options.length; i++)
{
select.options[i].selected = true;
}
您可以在提交onsubmit
之前在form
功能中执行此操作。
答案 1 :(得分:0)
解决:
我在提交表单之前添加了这个jQuery代码。
$(function() {
$('#formMain').submit(function() {
var select = document.getElementById("lstBox2");
for(var i = 0; i < select.options.length; i++)
{
select.options[i].selected = true;
}
return true;
});
});