<select id="select1"  class="userData">
<option>option1</option>
<option>option2</option>
<option>option3</option>
<option>option4</option>
</select>
<script>
var obj=document.all.select1;
obj.attachEvent('onchange',saveSelectedIndex)
function saveSelectedIndex(){
obj.setAttribute("sSelectValue",obj.selectedIndex);
obj.save("oSltIndex");
}
window.attachEvent('onload',loadSelectedIndex)
function loadSelectedIndex(){
obj.load("oSltIndex");
obj.selectedIndex=obj.getAttribute("sSelectValue");
}
</script>

解决方案 »

  1.   

    谢谢楼上,可是我运行上面代码
    obj.save("oSltIndex");这行抱错,说不支持此属性或方法;而且我的SELECT是动态变化的;每次刷新的OPTIONS都有可能不同,所以存selectedIndex没用的~~~~~
      

  2.   

    呵呵,我改成这样也可以:
    <script>
    var obj=document.all.select1;
    obj.attachEvent('onchange',saveSelectedIndex)
    function saveSelectedIndex(){
    obj.setAttribute("sSelectValue",obj.options[obj.selectedIndex].value);     --myrepair
    obj.save("oSltIndex");
    }
    window.attachEvent('onload',loadSelectedIndex)
    function loadSelectedIndex(){
    obj.load("oSltIndex");
    obj.selectedIndex=obj.getAttribute("sSelectValue");
    }
    </script>
    可是讨厌的是刷新页面总弹对话框说不支持属性或方法~~~~```:(
      

  3.   

    漏了一句,你不是要“选中的项不变”吗?上次选的如果是第二选项,下次即使select的选项增减了,或者完全不同了,还是会选择第二项。userdata将一直保存在客户机器上直到格式化系统重装<style>
          .userData {behavior:url(#default#userdata);}
    </style>
    <select id="select1"  class="userData">
    <option>option1</option>
    <option>option2</option>
    <option>option3</option>
    <option>option4</option>
    </select>
    <script>
    var obj=document.all.select1;
    obj.attachEvent('onchange',saveSelectedIndex)
    function saveSelectedIndex(){
    obj.setAttribute("sSelectValue",obj.selectedIndex);
    obj.save("oSltIndex");
    }
    window.attachEvent('onload',loadSelectedIndex)
    function loadSelectedIndex(){
    obj.load("oSltIndex");
    obj.selectedIndex=obj.getAttribute("sSelectValue");
    }
    </script>
      

  4.   

    谢谢 bencalie(Bencalie),可能是我没有表达清楚,我想要做到是根据COOKIES里的值来找到应该选中的项,就是说如果我选的是
    <select id="select1" onChange="saveSelectedIndex();">
    <option value="1">option1</option>
    <option value="2" selected>option2</option>
    <option value="3">option3</option>
    <option value="4">option4</option>
    </select>
    而页面应刷新后变成这样:
    <option value="new">optionnew</option>
    <option value="1">option1</option>    --而不是这行选中~~~~~~~
    <option value="2" selected>option2</option>
    <option value="3">option3</option>
    <option value="4">option4</option>
      

  5.   

    <style>
          .userData {behavior:url(#default#userdata);}
    </style>
    <select id="select1"  class="userData">
    <option>option1</option>
    <option>option2</option>
    <option>option3</option>
    <option>option4</option>
    </select>
    <script>
    var obj=document.all.select1;
    obj.attachEvent('onchange',saveSelectedIndex)
    function saveSelectedIndex(){
    obj.setAttribute("sSelectValue",obj.value);
    obj.save("oSltIndex");
    }
    window.attachEvent('onload',loadSelectedIndex)
    function loadSelectedIndex(){
    obj.load("oSltIndex");
    len=obj.options.length;
    for(i=0;i<len;i++)
    if(obj.getAttribute("sSelectValue")==obj.options[i].value)
    obj.options[i].selected=true;
    }
    </script>
      

  6.   

    前提是不能有选项的value重复<style>
          .userData {behavior:url(#default#userdata);}
    </style>
    <select id="select1"  class="userData">
    <option value="1">option1</option>
    <option value="2">option2</option>
    <option value="3">option3</option>
    <option value="4">option4</option>
    </select>
    <script>
    var obj=document.all.select1;
    obj.attachEvent('onchange',saveSelectedIndex)
    function saveSelectedIndex(){
    obj.setAttribute("sSelectValue",obj.value);
    obj.save("oSltIndex");
    }
    window.attachEvent('onload',loadSelectedIndex)
    function loadSelectedIndex(){
    obj.load("oSltIndex");
    len=obj.options.length;
    for(i=0;i<obj.options.length;i++)
    if(obj.getAttribute("sSelectValue")==obj.options[i].value){
    obj.options[i].selected=true;
    }
    }
    </script>
      

  7.   

    谢谢bencalie(Bencalie);
    我也实现了,是这样做的:
    <script language="JavaScript" src="../../js/function.js"></script>
    <script language="JavaScript">
    function saveSelectedIndex()
    {
    var freshtime1=document.form1.select1.options[document.form1.select1.selectedIndex].value;
    setCookie("app",freshtime1);
    }
    function selectindex()
    {
    if(getCookie("app")==""||getCookie("app")==null)
    {
    document.form1.select1.selectedIndex=0;
    }
    else
    {
    var ilength=document.form1.select1.options.length;
    for(i=4;i<ilength;i++)
    {
    if(document.form1.select1.options[i].value==getCookie("app"))
    document.form1.select1.selectedIndex=i;
    }
    }
    }
    </script>
    <body onLoad="selectindex();">
    <form name="form1">
    <select id="select1" class="userData" onChange="saveSelectedIndex();">
    <option value="option1">option1</option>
    <option value="option2">option2</option>
    <option value="option3">option3</option>
    <option value="option4">option4</option>
    </select>
    </form>
    </body>
      

  8.   

    不好意思,错了
    for(var i=0;i<ilength;i++)
    {
    if(document.form1.select1.options[i].value==getCookie("app"))
    document.form1.select1.selectedIndex=i;
    }