【发布时间】:2015-01-26 11:42:04
【问题描述】:
我是 JSP 的新手,我试图找到解决问题的方法,但不幸的是我找不到。 所以我想要做的是有 2 个下拉列表,当我从第一个列表中选择一个值时,必须过滤第二个下拉列表。 这是我到目前为止所做的: Servlet 将以下对象传递给 jsp:
getServletContext().setAttribute("foodDetails", fds.findAll());
request.getRequestDispatcher(url).forward(request, response);
在 jsp 代码中,我创建了两个下拉列表并使用以下代码填充列表:
<tr>
<td>Detay Tipi 1</td>
<td>
<select name="tip" id="tip" onchange="">
<option value="porsiyon">porsiyon</option>
<option value="extra">extra</option>
</select>
</td>
<td>
<select name="tip2" id="tip2" onchange="">
<option value"Lütfen Tip Seçiniz">Lütfen Tip Seçiniz</option>
</select>
</td>
</tr>
因此,当用户从第一个下拉列表中选择“porsiyon”时,第二个列表将填充来自 ${foodDetails} 的值。为了实现这一点,我使用以下代码覆盖了第一个下拉菜单的 onchange 方法:
<script type="text/javascript">
$(document).ready(function(){
$("#tip").change(function(){
tip2.length = 1;
var x=$(this).val();
<c:forEach var="fd" items="${foodDetails}">
<c:if test="${fd.detailcategory == x}">
tip2.options[tip2.options.length] = new Option("${fd.name}","${fd.name}");
</c:if>
</c:forEach>
});
});
</script>
不幸的是,当我切换时,这不起作用
var x=$(this).val();
具有静态值,例如:
<c:set var="x" scope="session" value='ekstra'/>
它像魅力一样工作,其中 c 被定义为:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>.
我可能犯了一个非常明显的错误,但我不知道是什么。这是我的第一个 jsp 页面,所以请放轻松 :) PS:我认为不需要上课来回答这个问题,但 fooddetails 有一个 fooddetail 列表,其中 fooddetail.detailcategory 可以是“porsiyon”或“ekstra”。
谢谢,
【问题讨论】:
-
我不同意这是重复的。我正在尝试去后端获取一些“价值”。我只是想根据第一个下拉值过滤第二个列表。