我有一个下拉列表
<select name="cate">
<option value="h">India</option>
<option value="m">USA</option>
<option value="c">England</option>
</select>
<input type="submit" value="show">
单击“显示”按钮时,在下表中将显示所选的国家/地区详细信息。 详细信息来自数据库,每次点击页面都会刷新。
我的问题是,如果用户在下拉列表中选择英格兰并单击显示按钮,它将显示详细信息,但下拉列表将仅显示名字。 我想显示所选的值名称。
请帮帮我。
答案 0 :(得分:3)
HTML CODE
<input type=hidden id ="selection" name="selection" value="">
<select name="cate">
<option onclick="document.getElementById('selection').value='h';" value="h">India</option>
<option onclick="document.getElementById('selection').value='m';" value="m">USA</option>
<option onclick="document.getElementById('selection').value='c';" value="c">England</option>
</select>
JSP CODE
<%
String selected = request.getParameter("selection");
%>
现在,当您在JSP页面上时,您可以指示用户选择了什么。 渲染元素时,将选择属性附加到所选选项
例如: &LT;选项值=“h”已选择&gt;印度&lt; / option&gt;
<强>更新强> 在显示下拉列表的位置,您需要进行某种验证,您需要检查选择值以及实际打印的内容。
if(selected ==null || selected.equals('')){
//do regular printing of the dropdown as you do now
}else{
out.print("<select>");
while(rs.next()){
if(rs.getString("VALUE").equals(selected )){
out.print("<option value=\""+rs.getString("VALUE")+"\" SELECTED >"+rs.getString("COUNTRY")+"</option>");
}else{
out.print("<option value=\""+rs.getString("VALUE")+"\" >"+rs.getString("COUNTRY")+"</option>");
}
}
out.print("</select>");
}
PS:代码是动态编写的,可能需要一些异常处理或可能存在一些拼写错误
答案 1 :(得分:3)
<input type="hidden" name="selectedValue" value="0"/>
将上面的内容放在select标签的下方
并在您的servlet中执行此操作
String selectedValue = `request.getParameter("selectedValue")`
现在将selectedValue设置为servlet请求
在最终的jsp中创建一个JS函数
function selectedValue(){
var value =<%=request.getParameter("selectedValue")%>;
if(value !=null)
{
document.f1.slvalue.selectedIndex=value ;
}
}
在最终jsp页面的bodyload上调用selectedValue()函数。 “slvalue”是您的选择标记的名称
答案 2 :(得分:0)
您可以将selected
添加到<option>
代码中,以便它是该页面的最初选定值。
<option value="h" selected>India</option>
会在页面加载时选择India选项。
您需要在JSP中添加一些逻辑,以便根据提交页面时选择的值将selected
添加到正确的<option>
标记中。
答案 3 :(得分:0)
对于干净的方法,您可以设置cookie。
看看这个jquery方法:jQuery cookies setting select drop down value after page refresh