页面有一个下拉框,选中一项后到后台查询,再重新返回该页面。我想让返回后得下拉框选中查询时选的值(根据从后台传回的id),请问如何实现?<select name="gpr" onchange= "change(this.value)" null?"":request.getParameter("grpid").trim()%>'>
<option value="1" >班级1
<option value="2">班级2
<option value="3">班级3
<option value="4">班级4
<option value="5">班级5
</select>
在返回后的页面,我可以通过request.getParameter("id")获得第一次选中的option的value(1,2,3,4,5),但是怎么让它选中呢?
<option value="1" >班级1
<option value="2">班级2
<option value="3">班级3
<option value="4">班级4
<option value="5">班级5
</select>
在返回后的页面,我可以通过request.getParameter("id")获得第一次选中的option的value(1,2,3,4,5),但是怎么让它选中呢?
<select name="gpr" onchange= "change(this.value)" >
<option value="1" >班级1
<option value="2">班级2
<option value="3">班级3
<option value="4">班级4
<option value="5">班级5
</select>
window.表单id.submit();然后在后台将得到的下拉框的值传回来
前台代码改一下:用<c:if>判断
<script type="text/javascript">
var s1 = document.getElementById("S1");
for(i = 0;i<=s1.length;i++){
if(s1.options[i].value == '1'){
s1.options[i].selected = true;
}
}
</script>
<BODY>
<select name="gpr" id="gpr" onchange= "change(this.value)" >
<option value="1" >班级1
<option value="2">班级2
<option value="3">班级3
<option value="4">班级4
<option value="5">班级5
</select> <SCRIPT LANGUAGE="JavaScript">
<!--
var x = '3';//这个是上次选中的值,你应该放到request中返回的时候可以取到
var sel = document.getElementById('gpr');
for(var i=0;i<sel.options.length;i++){
if(sel.options[i].value==x){
sel.options[i].selected=true;break;
}
} function change(pm){
//submit form
}
//-->
</SCRIPT>
</BODY>
var xmlDoc=xmlHttp.responseXML.documentElement;
var results=xmlHttp.responseXML.getElementsByTagName("city");
var cityNo=document.getElementsByName("customer.paperCity.cityNo")[0];
cityNo.options.length=0;
cityNo.options.add(new Option('---请选择---','0'));
for(var i=0;i<results.length;i++){
var xValue=results[i].childNodes[0].firstChild.nodeValue;
var xText=results[i].childNodes[1].firstChild.nodeValue;
var option=new Option(xText,xValue);
try{
cityNo.options.add(option);
}catch(e){}
}
}
这个js就是从后台传回来的值。
onmouseover="FixWidth(this)">
<option value="0">--请选择--</option>
<c:forEach items="${listBuilding}" var="build">
<option value="${build.sequence}" ${build.sequence==building?'selected' : ''}>
${build.name }
</option>
</c:forEach>
</select>
现在用的,看看,el,三元运算。实现。
public String QVMPaperCityList()throws Exception{
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/xml;charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
StringBuffer results=new StringBuffer("<paperCityList>");
setPaperCityList(this.cityService.findCityByProvince(getCustomer().getPaperProvince().getProvinceNo()));
for(int i=0;i<getPaperCityList().size();i++){
City city=(City)getPaperCityList().get(i);
results.append("<city>");
results.append("<value>");
results.append(city.getCityNo());
results.append("</value>");
results.append("<text>");
results.append(city.getCityName());
results.append("</text>");
results.append("</city>");
}
results.append("</paperCityList>");
response.getWriter().write(String.valueOf(results));
return null;
}
<select name="gpr" onchange= "change(this.value)" >
<option value="1" >班级1
<option value="2">班级2
<option value="3">班级3
<option value="4">班级4
<option value="5">班级5
</select> js:
function onchange= (id){
var url="<%=ctx%>/system/cus/QVMPaperCityListCustomerAction?customer.paperProvince.provinceNo="+escape(id);
createXMLHttpRequest();
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
} var xmlHttp;
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
}
function handleStateChange(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
updateCityList();
}else{
alert("Not able to retrieve description:"+xmlHttp.statusText);
}
}
} function updateCityList(){
var xmlDoc=xmlHttp.responseXML.documentElement;
var results=xmlHttp.responseXML.getElementsByTagName("city");
var cityNo=document.getElementsByName("customer.paperCity.cityNo")[0];
cityNo.options.length=0;
cityNo.options.add(new Option('---请选择---','0'));
for(var i=0;i<results.length;i++){
var xValue=results[i].childNodes[0].firstChild.nodeValue;
var xText=results[i].childNodes[1].firstChild.nodeValue;
var option=new Option(xText,xValue);
try{
cityNo.options.add(option);
}catch(e){}
}
}
action:
public String QVMPaperCityList()throws Exception{
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/xml;charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
StringBuffer results=new StringBuffer("<paperCityList>");
setPaperCityList(this.cityService.findCityByProvince(getCustomer().getPaperProvince().getProvinceNo()));
for(int i=0;i<getPaperCityList().size();i++){
City city=(City)getPaperCityList().get(i);
results.append("<city>");
results.append("<value>");
results.append(city.getCityNo());
results.append("</value>");
results.append("<text>");
results.append(city.getCityName());
results.append("</text>");
results.append("</city>");
}
results.append("</paperCityList>");
response.getWriter().write(String.valueOf(results));
return null;
}你自己稍作修改
返回时在前台js中分别获得查询条件,用EL即可获取,例如${vo.gpr}
然后再用jquery给下拉列表赋上选中的值
$('gpr').val(${vo.gpr});
function getSelectState(selectId, optionValue){
var sel = document.getElementById(selectId);
for(var i=0;i<sel.length;i++) {
if(sel.options[i].value == optionValue) {
sel.selectedIndex = i;
break;
}
}
}// 使用
$(document).ready(function(){
// 要设置的Select的id
getSelectState("id", "${param.id}");
});