页面有一个下拉框,选中一项后到后台查询,再重新返回该页面。我想让返回后得下拉框选中查询时选的值(根据从后台传回的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),但是怎么让它选中呢?

解决方案 »

  1.   

    ajax最好了。我以前写过,我有代码。
      

  2.   

    下拉框的代码发错了,重新发一遍。
    <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>    
      

  3.   

    onchange的时候,去执行一个function在function里面,将表单提交。。
        window.表单id.submit();然后在后台将得到的下拉框的值传回来
    前台代码改一下:用<c:if>判断
      

  4.   

    你在页面最下面写个js去 循环判断然后将符合条件的 selected = true
    <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>
      

  5.   


     <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>
      

  6.   

    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){}
    }

    }
    这个js就是从后台传回来的值。
      

  7.   

    <select name="building" class="louyu_xiala_kt" id="hospitalSel"
    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,三元运算。实现。
      

  8.   

    这个是后台的代码:
    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;
    }
      

  9.   

    jsp
    <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;
    }你自己稍作修改
      

  10.   

    如果你用框架的话会更简单,struts标签只要绑定了值就会自动选择的!
      

  11.   

    你把查询条件在后台取得,放到一个vo中,request.setAttribute()一下
    返回时在前台js中分别获得查询条件,用EL即可获取,例如${vo.gpr}
    然后再用jquery给下拉列表赋上选中的值
    $('gpr').val(${vo.gpr});
      

  12.   

    最后一句写错了$('#gpr').val(${vo.gpr});
      

  13.   

    自己用的: // 设置页面Select对象的选中状态
    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}");
    });