有一页面,内有三个select控件,一个提交按钮。现在想每次提交之后,三个控件的选择项保留提交之前选择的,用JS写好几天了也写不出来,求教!
PS:不用ajax,因为这页面需要刷新的东西太多,感觉用ajax不太方便。上代码:
这是主页面代码:<form method="POST" action="<?=site_url('home/query_timeid')?>">
<p style="text-align:center">周报区间:<select name="year">
<option selected value="2011">2011年</option>
<option value="2012">2012年</option>
<option value="2013">2013年</option>
<option value="2014">2014年</option>
<option value="2015">2015年</option>
</select>
<select id="month" name="month" size="1">
<option value="1">1月</option>
<option value="2">2月</option>
<option value="3">3月</option>
<option value="4">4月</option>
<option value="5">5月</option>
<option value="6">6月</option>
<option value="7">7月</option>
<option value="8">8月</option>
<option value="9">9月</option>
<option value="10">10月</option>
<option value="11">11月</option>
<option value="12">12月</option>
</select>
<select name="week">
<option value="1">第一周</option>
<option value="2">第二周</option>
<option value="3">第三周</option>
<option value="4">第四周</option>
<option value="5">第五周</option>
</select><input type="submit" name="submit"  value=" 查询 "/>
</form>这是写在head里的script:
<script language="javascript" type="text/javascript">
function save() {
var monthId = document.getElementById("month").selectedIndex;
    document.cookie = "monthId=" + monthId;
    
    var weekId = document.getElementById("week").selectedIndex;
    document.cookie = 'weekId=' + weekId;
}

window.onload = function () 
{
var cookieData=new String(document.cookie);
var cookieHeader="monthId=";
var cookieStart=cookieData.indexOf(cookieHeader)+cookieHeader.length;
var cookieEnd=cookieData.indexOf("; ",cookieStart);
if(cookieEnd!=-1)
{
cookieEnd=cookieData.length;
}
if(cookieData.indexOf(cookieHeader)!=-1)
{
//alert(cookieData.substring(cookieStart,cookieEnd));

}
else
{
//alert("not found!");
save();
}
        
    }
</script>alert出来的值每次都一样,哎

解决方案 »

  1.   

    LZ写了这么多实在没耐心看,
    LZ要的就是点击查询完以后,又返回这个页面,然后三个select是点击查询之前的直接在这个页面加三个隐藏域
    <input type='hidden' name='year' id='yearString'>
    后台定义三个属性,String year,查询完一块返回给页面
    前台直接判断
    if(""!=$("#yearString").val() && null!=$("#yearString").val()){
          $("#year").val($("#yearString").val())
    }
      

  2.   

    咦是select,或者
     var obj = document.getElementById("year");    
         for (var i = 0; i < obj.options.length; i++) {        
          if (obj.options[i].value == $("#yearString").val()) {
               obj.options[i].selected=true;
               break;//好像是return false;
          }
         }
    }      
                   
      

  3.   

    LZ的意思是刷新也能保存值,肯定是要在cookie里面保存的
      

  4.   

    好吧,document.cookie
    剩下的自己上网搜索吧
      

  5.   

    <script language=javascript>
     <%
     syear = request.form("year");
     smouth = request.form("month");
     sday = request.form("day");
     if (syear<>"" && smonth<>"" && sday<>"")
     {
     %>
        document.body.form1.year = <%=syear %>;
        document.body.form1.month = <%=day %>;
        document.body.form1.day = <%=day %>;
      <%
      }
     %>
     </script>
      

  6.   

    <html>
    <head><script language="javascript" type="text/javascript">
     function save() {
    alert(11);
    var fm = document.getElementById("fm");
    var monthId = document.getElementById("month").selectedIndex;
     document.cookie = "monthId=" + monthId;
    alert(document.cookie);
    alert(22);
    fm.submit();
      }
    window.onload = function ()  
    {
     var cookieData=new String(document.cookie);
    alert(cookieData);
     var cookieHeader="monthId=";
     var cookieStart=cookieData.indexOf(cookieHeader)+cookieHeader.length;
     var cookieEnd=cookieData.indexOf("; ",cookieStart);
    alert(cookieEnd);
     if(cookieEnd!=-1)
     {
     var month = cookieData.substring(cookieStart,cookieEnd);
    alert(month);
    document.getElementById("month").value=2; }
         
      }
    </script></head>
    <body><form method="POST" id="fm" action="<?=site_url('home/query_timeid')?>">
    <p style="text-align:center">周报区间:<select id="month" name="month" size="1">
    <option value="1">1月</option>
    <option value="2">2月</option>
    <option value="3">3月</option>
    <option value="4">4月</option>
    <option value="5">5月</option>
    <option value="6">6月</option>
    <option value="7">7月</option>
    <option value="8">8月</option>
    <option value="9">9月</option>
    <option value="10">10月</option>
    <option value="11">11月</option>
    <option value="12">12月</option>
    </select><input type="button" onclick="save();" value=" 查询 "/>
    </form>
    </body>
    </html>
      

  7.   

    你的save方法根本就没有调用过,你把你的save()不要放在if语句中就没有问题了,不过这个代码还有很多地方需要修改
      

  8.   

    <html>
    <head>
    <script language="javascript" type="text/javascript">
     function save() {
     var monthId = document.getElementById("month").selectedIndex;
     document.cookie = "monthId=" + monthId;
       
    var weekId = document.getElementById("week").selectedIndex;
     document.cookie = 'weekId=' + weekId;
     }
     
    window.onload = function ()  
    {
     var cookieData=new String(document.cookie);
     var cookieHeader="monthId=";
     var cookieStart=cookieData.indexOf(cookieHeader)+cookieHeader.length;
     var cookieEnd=cookieData.indexOf("; ",cookieStart);
     if(cookieEnd!=-1)
     {
     cookieEnd=cookieData.length;
     }
     if(cookieData.indexOf(cookieHeader)!=-1)
     {
     alert(cookieData.substring(cookieStart,cookieEnd)); }
     else
     {
     alert("not found!"); }
    save();
      }
    </script></head>
    <body>
    <form method="POST" action="<?=site_url('home/query_timeid')?>">
    <p style="text-align:center">周报区间:<select name="year">
    <option selected value="2011">2011年</option>
    <option value="2012">2012年</option>
    <option value="2013">2013年</option>
    <option value="2014">2014年</option>
    <option value="2015">2015年</option>
    </select>
    <select id="month" name="month" size="1">
    <option value="1">1月</option>
    <option value="2">2月</option>
    <option value="3">3月</option>
    <option value="4">4月</option>
    <option value="5">5月</option>
    <option value="6">6月</option>
    <option value="7">7月</option>
    <option value="8">8月</option>
    <option value="9">9月</option>
    <option value="10">10月</option>
    <option value="11">11月</option>
    <option value="12">12月</option>
    </select>
    <select name="week">
    <option value="1">第一周</option>
    <option value="2">第二周</option>
    <option value="3">第三周</option>
    <option value="4">第四周</option>
    <option value="5">第五周</option>
    </select><input type="submit" name="submit" value=" 查询 "/>
    </form>
    </body>
    </html>
      

  9.   


    这段代码什么意思?刷新之后不能保存select值啊
      

  10.   


    你给我代码我试了下,不行,没有弹出框,说明 alert(cookieData.substring(cookieStart,cookieEnd));这句根本就没有执行我的JS水平很菜,不好意思,还请大家帮帮忙。
      

  11.   

    刷新之后肯定没有了,用application保存值就可以了