检索表单中的所有值:在带有spring标记的JSP页面中选择

时间:2014-03-28 07:55:33

标签: jsp spring-mvc

我有一个包含两个多选下拉列表的表单, 使用java脚本我在单击按钮时将值从一个下拉选择移动到另一个,并在单击另一个按钮时从seconf转到第一个下拉选择。

当我提交表格时,我希望获得表格中的所有值:选择(即,也可以检索用户也未选择的值)

jsp如下:

                <form:form id="adduser" commandName="Bean" action="add.htm" method="post">

                                        <form:select id="availableOptions" path="availableOptions" name="availableOptions" multiple="multiple" size="9" style="width:6em" onblur="hide();">
                                            <c:forEach items="${Bean.availableOptions}" var="name">
                                                <option>${name}</option>
                                            </c:forEach>
                                        </form:select>
                                        <input type="button" value="Add" onclick="movefromAvailabletoSelected();"></input>
                                        <input type="button" value="Remove" onclick="movefromSelectedtoAvailable();"></input>
                                        <form:select id="selectedOptions" path="selectedOptions" name="selectedOptions" multiple="multiple" size="9" style="width:6em">
                                            <c:forEach items="${Bean.selectedOptions}" var="name">
                                                <option>${name}</option>
                                            </c:forEach>
                                        </form:select>

                            <input type="submit" class="submit" value="Submit" name="submit" id="submit"  style="margin-left: 15%"/>
            </form:form>

1 个答案:

答案 0 :(得分:0)

我不知道在select中直接做什么,但是有一些间接的选择:

<强> 1。将选择更改为多选并使用javascript选择提交中的所有值

在此方法中,您可以将选择设置为:

<form:select multiple="true path="mySelect">
   ...

然后,如果我们说使用jQuery,我们可以做类似的事情:

$("#myForm).submit(function() {
  $('#mySelect option').attr('checked','checked');
});

这是袖手旁观的,尚未经过测试,并不一定要使用jQuery,但它显示了一般的想法。另一种选择是使用某种JavaScript来维护一个隐藏字段,该字段是select中值的分隔列表。

<强> 2。每次按下按钮时都会进行某种AJAX调用

这需要在架构上完成更多,但想法是设置一个AJAX调用,以便在后端将值从一个移动到另一个。这样UI和后端将保持同步。这种方法有很多考虑因素,比如你在“临时”模型上操作,这样你就不会修改原文,直到他们做最后的提交,在这种情况下,然后你复制临时文件?

我确信还有其他人,但现在还很早,我的大脑尚未充分参与。