提交表单时的空值

时间:2013-06-17 14:39:23

标签: jsp

我的JSP页面中有一个三个单选按钮。我正在显示基于所选单选按钮的多选框。 但是在提交表单时,我从两个选择框中获取空值。其他选择框工作正常。

任何人都可以帮助我吗?

<script type="text/javascript">
$(document).ready(function(){
$('.show').hide();
$("input[name$='application']").click(function() {
var test = $(this).val();
$("div.show").hide();
$('#showemma').hide();
$('#showdmfota').hide();
$('#showuep').hide();
$("#show" + test).show();
   });
});
</script>
<title>Add Config Changes</title>
</head>
<body>
<%
    Server env = new Server();
    Map<String, List<String>> map = env.getServer();
    Properties property = new Properties();
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    property.load(classLoader.getResourceAsStream("error.properties"));
%>
<h3> Add Configuration Change</h3> <br><br>
<form action="_config" method="post">
<table align="center" id ="login">
    <tr>
        <td>Application</td>
            <td>
            <div class="radio" style="font-size:12px;">
                <label><input type="radio" name="application" id="fota" value="dmfota"> DMFOTA</label>
                <label><input type="radio" name="application" id="uep" value="uep"> UEP</label>
                <label><input type="radio" name="application" id="emma" value="emma"> EMMA</label>
                </div>
            </td>
        <td id="error"><p id ="applicationError"><%=property.getProperty("applicationError") %></p></td>
    </tr>           

    <% for (String serverNamekey : map.keySet()){%>
    <tr id="show<%= serverNamekey %>" class="show" style='display:none'>

        <td>Server</td>
            <td>
            <% List<String> servers = map.get(serverNamekey); %>
                <select name="server" id="server" multiple="multiple" style="width:150px; height: 150px;">
                    <%for (String serverName : servers){  %>
                        <option value="<%=serverName%>"><%=serverName%></option>
                    <%} %>
                </select> 
            </td> 
            <td id="error"><p id ="serverError"><%=property.getProperty("serverError") %></p></td>
    </tr>
            <%} %>
    <tr>
        <td colspan =2><input type="submit" value="Add Change Log"   id="configSubmit" class="submit"></td>
    </tr>
</table>
</form> 
</body>
</html>

</table>
</form> 
</body>

1 个答案:

答案 0 :(得分:1)

如评论中所述,您的name属性在所有输入上必须是唯一的,否则,服务器只会考虑一个值。此外,id也必须是唯一的。

我建议将serverNameKey用作唯一nameid

<select id="select-<%= serverNamekey %>" name="<%= serverNamekey %>" ...

请注意,所有name都需要相同的input type="radio"属性,因此该部分可以。


与问题无关,我也建议不要使用scriplets,你应该阅读有关JSTL的内容。如果它是一个新项目,我建议使用接管JSP的JSF(不推荐使用)。