我有一个字符串 eqArray 的arraylist。
我需要在下拉列表中显示它,我在JSP中使用以下内容:
<%
for(int count=0;count<eqArray.size();count++){ %>
<option value="<%=eqArray.get(count)%>"><%=eqArray.get(count)%></option>
<%}
%>
我有一个eqName字符串,它是eqArray的一部分,默认情况下应该是选定的值。
如何在不检查并始终将第一个选项设置为eqName的情况下进行操作?
答案 0 :(得分:5)
<% for(int count=0; count<eqArray.size(); count++){ %>
<option value="<%= eqArray.get(count) %>" <%= (eqArray.get(count).equals("eqName"))?"selected":"" %> ><%= eqArray.get(count) %></option>
<%} %>
答案 1 :(得分:4)
在数组中将eqName元素的索引更改为0,或使用条件语句。
<%
for(int count=0; count < eqArray.size(); count++){ %>
<%if(eqArray.equals("eqName"){ %>
<option selected="selected" value="<%=eqArray.get(count)%>"><%=eqArray.get(count)%></option>
<%} %>
<option value="<%=eqArray.get(count)%>"><%=eqArray.get(count)%></option>
<%} %>
但使用JSTL taglib而不是使用scriptlet。
答案 2 :(得分:2)
你可以通过JQuery做到这一点,恕我直言更干净:
<select data-selected="${eqName}">
<%
for(int count=0;count<eqArray.size();count++){ %>
<option value="<%=eqArray.get(count)%>"><%=eqArray.get(count)%></option>
<%}
%>
</select>
在页面的末尾:
<script type="text/javascript">
$("select[data-selected]").each(function() {
var selected = $(this).data("selected");
$("select[data-selected='" + selected + "'] option[value='" + selected + "']").attr("selected", "selected");
})
</script>
通过这种方式,您只需要在每个页面都包含js。
顺便说一句,我建议你使用JSTL和EL,它更具可读性:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<select data-selected="${eqName}">
<c:forEach items="${eqArray}" var="model">
<option value="${model}">${model}</option>
</c:forEach>
</select>
答案 3 :(得分:0)
您可以通过两种方式实现这些
在选择框代码的末尾使用Javascript
的document.getElementById( 'selectBoxID')。值= “”而不是selectBoxID id使用选择框id