你查询的时候表单肯定提交的有name为或者类似Province,City,CityCode三个值获取这三个值,然后调用InitCitySelect(),将那三个值作为参数传给它具体调用时间你自己把握,可以是window.onload的时候

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <script type="text/javascript">
    var data = {
                sheng:  [{id:1,name:"北京"}, {id:2,name:"邯郸"}],
                qu:  {id_1:[{id:3,name:"海淀区"}, {id:4,name:"东城区"}], 
                id_2:[{id:5,name:"南"}, {id:6,name:"东"}]},
                
                jiedao: {id_3:[{id:11,name:"盛唐饭店"},{id:12,name:"知春路"},{id:13,name:"稻香园"}],
                    id_4:[{id:14,name:"东四十条"},{id:15,name:"港澳中心"},{id:16,name:"东直门"}],
                    id_5:[{id:17,name:"电力小区"},{id:18,name:"电力医院"}],
                    id_6:[{id:19,name:"北大青鸟"},{id:20,name:"福瑞特"},{id:21,name:"东信家园"}]}
            };
            function init(){
            /*处理省下拉列表框*/
             var shengHTML = document.getElementById("sheng");
            
             // 移除下拉列表中原有内容
             while(shengHTML.childNodes.length > 0){
             shengHTML.removeChild(
             shengHTML.childNodes[0]);
             }
            
             // 添加option
             var sheng = data.sheng;
             for(var i = 0; i< sheng.length; i++){
             var op = document.createElement("option");
             op.value = sheng[i].id;
             var text = document.createTextNode(sheng[i].name);
             op.appendChild(text);
             shengHTML.appendChild(op);
             }
            /*处理区下拉列表框*/
             var quHTML = document.getElementById("qu");
            
             // 移除下拉列表中原有内容
             while(quHTML.childNodes.length > 0){
             quHTML.removeChild(
             quHTML.childNodes[0]);
             }
            
             // 添加option 这里的qu代表第一个省的所有区
             var qu = data.qu["id_" + sheng[0].id];
             for(var i = 0; i< qu.length; i++){
             var op = document.createElement("option");
             op.value = qu[i].id;
             var text = document.createTextNode(qu[i].name);
             op.appendChild(text);
             quHTML.appendChild(op);
             }
            
             /*处理街道下拉列表框*/
             var jiedaoHTML = document.getElementById("jiedao");
            
             // 移除下拉列表中原有内容
             while(jiedaoHTML.childNodes.length > 0){
             jiedaoHTML.removeChild(
             jiedaoHTML.childNodes[0]);
             }
            
             // 添加option 这里的jiedao代表第一个区下的所有街道
             var jiedao = data.jiedao["id_"+qu[0].id];
             for(var i = 0; i< jiedao.length; i++){
             var op = document.createElement("option");
             op.value = jiedao[i].id;
             var text = document.createTextNode(jiedao[i].name);
             op.appendChild(text);
             jiedaoHTML.appendChild(op);
             }
            }
            function shengChange(){
             var shengHTML = document.getElementById("sheng");
             //alert('id是 ' + shengHTML.options[shengHTML.selectedIndex].value);
             var shengId = shengHTML.options[shengHTML.selectedIndex].value;
             /*处理区下拉列表框*/
             var quHTML = document.getElementById("qu");
            
             // 移除下拉列表中原有内容
             while(quHTML.childNodes.length > 0){
             quHTML.removeChild(
             quHTML.childNodes[0]);
             }
            
             // 添加option 这里的qu代表所选中的省的所有区
             var qu = data.qu["id_" + shengId];
             for(var i = 0; i< qu.length; i++){
             var op = document.createElement("option");
             op.value = qu[i].id;
             var text = document.createTextNode(qu[i].name);
             op.appendChild(text);
             quHTML.appendChild(op);
             }
            
             /*处理街道下拉列表框*/
             var jiedaoHTML = document.getElementById("jiedao");
            
             // 移除下拉列表中原有内容
             while(jiedaoHTML.childNodes.length > 0){
             jiedaoHTML.removeChild(
             jiedaoHTML.childNodes[0]);
             }
            
             // 添加option 这里的jiedao代表第一个区下的所有街道
             var jiedao = data.jiedao["id_"+qu[0].id];
             for(var i = 0; i< jiedao.length; i++){
             var op = document.createElement("option");
             op.value = jiedao[i].id;
             var text = document.createTextNode(jiedao[i].name);
             op.appendChild(text);
             jiedaoHTML.appendChild(op);
             }
            }
            function quChange(){
             var quHTML = document.getElementById("qu");
             //alert('id是 ' + quHTML.options[quHTML.selectedIndex].value);
             var quId = quHTML.options[quHTML.selectedIndex].value;
            
             /*处理街道下拉列表框*/
             var jiedaoHTML = document.getElementById("jiedao");
            
             // 移除下拉列表中原有内容
             while(jiedaoHTML.childNodes.length > 0){
             jiedaoHTML.removeChild(
             jiedaoHTML.childNodes[0]);
             }
            
             // 添加option 这里的jiedao代表所选中的区下的所有街道
             var jiedao = data.jiedao["id_"+quId];
             for(var i = 0; i< jiedao.length; i++){
             var op = document.createElement("option");
             op.value = jiedao[i].id;
             var text = document.createTextNode(jiedao[i].name);
             op.appendChild(text);
             jiedaoHTML.appendChild(op);
             }
            }
    </script>
      </head>
      
      <body>
       <input type="button" value="初始化" onclick="init();"/>
        <select id="sheng" onchange="shengChange();"></select>
        <select id="qu" onchange="quChange();"></select>
        <select id="jiedao"></select>
      </body>
    </html>
      

  2.   

    谢谢大家的回复,楼上给的代码。
    我想用纯JS。
     <form name='infoguide' method='get' action='search.php'>
    <select id="selprovince" size="1" name="province"> 
         <option selected> </option> 
    </select> 
    <select id="selCity" size="1" name="city"> 
        <option selected> </option> 
    </select> 
    <script language="javascript"> 
    InitCitySelect2(document.profile.selprovince,document.profile.selCity,**********); 
    </script> 
    <input type="submit"> 
    网页中放置的是上面的内容,可以实现省市联动。是搜索时候用的,点击搜索<input type="submit"> 按钮后由'search.php'给处结果,此时
    <select id="selprovince" size="1" name="province"> 
         <option selected> </option> 
    </select> 
    <select id="selCity" size="1" name="city"> 
        <option selected> </option> 
    </select>
    这两个省市的下拉框又变成“请选择”了,在提交的时候会又刷新。我想要提交后得到搜索结果页面,但是这两个下拉框返回刚才选择的省市,就是刚刚选择的是默认选中,而不是变为初始时候的“请选择”。小弟谢过了
      

  3.   

    在页面提交的时候,是整个页面重新生成并从后台发适至前台,当前页面内容已经刷新,信息无法保留.如果单纯用JS,用COOKIE的话才可以吧!
      

  4.   

    和楼上说的一样,纯JS是没办法的,
    function InitCitySelect2(selProvince,selCity,h.k) 

        InitCitySelect(selProvince,selCity) 
        for(i=0;i <selProvince.length;i++) 
         selProvince.options[h].selected=true; 
        Province_onchange(); 
          selCity.options[k].selected=true; 
     }
    我把最后的那个改成这样了,根据返回的selCity和selprovince判断h和k的值,然后用 
    <script language="javascript"> 
    InitCitySelect2(document.profile.selprovince,document.profile.selCity,h,k); 
    </script> 
    呵呵,这样就可以了