JSP:如何将下拉列表的所有(选定和未选定)选项传递给servlet?

时间:2018-10-04 11:51:37

标签: javascript jsp servlets dropdown

我的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>

2 个答案:

答案 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”);