我的JSP Web应用程序中有一个下拉列表,并且使用JavaScript代码从输入文本中添加和删除项目。现在,我想使用提交按钮将下拉列表中的所有(选定和未选定的)项目传递给servlet。我该怎么做? 以下代码仅返回所选项目的值:
String ST=request.getParameter("friendList");
我的HTML和JavaScript代码:
<form class="form" action="project" method="post">
<input type="text" id="In_Name" placeholder="my new friend's name"/>
<div class="addIcon" onclick="addFriend()"></div>
<div class="removeIcon" onclick="removeFriend()"></div>
<select size="5" name="friendList" id="friendList">
</select>
<button type="submit" name="MyButton">Submit</button>
</form>
<script>
function addFriend() {
var Str=document.getElementById("In_Name").value;
if(Str!="")
{
var opt = document.createElement("option");
opt.text = Str;
opt.value = Str;
document.getElementById("friendList").options.add(opt);
}
}
function removeFriend() {
var x = document.getElementById("friendList");
if(x.selectedIndex != "-1")
x.remove(x.selectedIndex);
}
</script>
答案 0 :(得分:2)
我想使用“提交”按钮将下拉列表中的所有(选中和未选中的)项目传递给servlet
浏览器仅传递选定的选项,要发送所有选项,请使用multiple
属性。另外,在提交表单之前,您将需要一个方便的脚本来选择所有选项。
更改servlet:
String[]ST=request.getParameterValues("friendList");
JSP更改:
<form class="form" action="project" method="post" onsubmit="selectAll('friendList')">
....
<select size="5" name="friendList" id="friendList" multiple=''></select>
....
</form>
<script>
...
function selectAll(id){
var options = document.getElementById(id).options;
var len = options.length;
while(len --){
options[len].selected = true;
}
}
</script>
答案 1 :(得分:0)
您已经使用了name属性。因此,您只需要向servlet中添加一行即可。并向您的jsp文件“ multiple”添加另一个属性。
use:字符串值[] = request.getParameterValues(“ friendList”);