写个值进入cookie,然后onload时从cookie中读数据来初始化checkbox

解决方案 »

  1.   

    不过,有个问题。写cookie的话需要及时清除。否则,关闭页面后再次打开仍会选中。可以将列表放到iframe中,选中时候,改写self.top中的某个变量值。下一页时,直接读self.top中的变量值对checkbox进行初始化就可以了。
      

  2.   

    没事,瞎写的一个test.htm
    <script>
    function $(Id){return document.getElementById(Id);}
    function SaveCookie(cookieName,data)
    {
    //不加上时间,当关闭当前窗口cookie就无效果了
     // var d=new Date();
      //d.setMinutes(d.getMinutes()+1);//有效期限为1分钟
      document.cookie=cookieName+"="+data//+";expires="+d.toGMTString()
    }function ReadCookie(cookieName)
    {
      var reg=new RegExp(cookieName+"=([^;]+);?","i");
      var m=document.cookie.match(reg)
      if(m)return m[1];
      else return "";
    }
    window.onunload=function()//在卸载页面时将选择的状态数据保存到cookie中
    {
      var cbs=document.getElementsByTagName("input");
      var data='';
      for(var i=0;i<cbs.length;i++)
       if(cbs[i].type=="checkbox"&&cbs[i].id&&cbs[i].checked)data+=cbs[i].id+"|";//收集选择的checkbox    data=data.substr(0,data.length-1);
        SaveCookie("cbStatus",data);}
    window.onload=function()
    {
      var str=ReadCookie("cbStatus")
      if(str!="")
      {
        var cbs=str.split('|'),cb;
        for(var i=0;i<cbs.length;i++)
        {
          cb=$(cbs[i])
          if(cb)cb.checked=true;
        }
      }
    }function ckall(cb)
    {
      var cbs=document.getElementsByTagName("input");
      for(var i=0;i<cbs.length;i++)
        if(cbs[i].type=="checkbox"&&cbs[i]!=cb)cbs[i].checked=cb.checked;
    }
    </script>
    <div><input type="checkbox" onclick="ckall(this)" id="ckall"/>全选</div>
    <!---注意要有唯一的id---->
    <input type="checkbox" id="Checkbox1" /><input type="checkbox" id="Checkbox2" /><input type="checkbox" id="Checkbox3" /><input type="checkbox" id="Checkbox4" /><input type="checkbox" id="Checkbox5" /><br />
    <input type="checkbox" id="Checkbox6" /><input type="checkbox" id="Checkbox7" /><input type="checkbox" id="Checkbox8" /><input type="checkbox" id="Checkbox9" /><input type="checkbox" id="Checkbox10" /><br />
    <input type="checkbox" id="Checkbox11" /><input type="checkbox" id="Checkbox12" /><input type="checkbox" id="Checkbox13" /><input type="checkbox" id="Checkbox14" /><input type="checkbox" id="Checkbox15" /><br />
    <input type="checkbox" id="Checkbox16" /><input type="checkbox" id="Checkbox17" /><input type="checkbox" id="Checkbox18" /><input type="checkbox" id="Checkbox19" /><input type="checkbox" id="Checkbox20" /><br />
    <h1>你选择后刷新或者点下面的连接可以看到原来选择的还是选择,你关闭窗口后再打开读不到cookei了,没设置cookie的expires属性</h1>
    <a href="test.htm">test.htm</a> <a href="test.htm">test.htm</a> <a href="test.htm">test.htm</a>
      

  3.   

    非常感谢showbo
    呵呵 分已经给了。谢谢哈。问题差不多解决了。3KS