我的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>
答案 0 :(得分:1)
如评论中所述,您的name
属性在所有输入上必须是唯一的,否则,服务器只会考虑一个值。此外,id
也必须是唯一的。
我建议将serverNameKey
用作唯一name
和id
:
<select id="select-<%= serverNamekey %>" name="<%= serverNamekey %>" ...
请注意,所有name
都需要相同的input type="radio"
属性,因此该部分可以。
与问题无关,我也建议不要使用scriplets,你应该阅读有关JSTL的内容。如果它是一个新项目,我建议使用接管JSP的JSF(不推荐使用)。