学习js,发现了一个小疑问,请教...
第一次运行正常,然后随便选一个,也正常,然后刷新一下,左边的正常,但右边的不正常,为什么会这样呢
刷新与第一次运行有什么区别...
代码如下
<SELECT ID="oCourses" SIZE="1" onchange="fnChange()">
<OPTION VALUE="" SELECTED>--请选择一个--</option>
</SELECT>
<TEXTAREA ID="oData"></TEXTAREA>
<script language=javascript>
//假设从数据库中查询到的用户上次选择结果项的值为"3"
var last_select = "3";  //下面的代码为列表框增加三个选择项
var oOption = document.createElement("OPTION");
oOption.text = "vc";
oOption.value = "1";
oCourses.add(oOption); oOption = document.createElement("OPTION");
oOption.text = "vb";
oOption.value = "2";
oCourses.add(oOption); oOption = document.createElement("OPTION");
oOption.text = "java";
oOption.value = "3";
oCourses.add(oOption);
/*用户在修改和查看上次的设置信息时,程序应自动选中他上次的设置结果项.*/
oCourses.value = last_select;
oData.value = oCourses.options[last_select].value; /*下面的fnChange函数在用户每次改变选择时都将选择结果显示在一个文本框中*/
function fnChange()
{
oData.value = oCourses.options[oCourses.selectedIndex].value;
}
</script>

解决方案 »

  1.   

    alert(oCourses.options[oCourses.selectedIndex].value)
    这个值看看.
      

  2.   

    没看出啥问题,刷新也正常啊,都是客户端代码,刷新不会出问题,你可以参考一下这个文件:<script language="javascript">var info=new Array("杂文*弥天大谎的背后|院士相当于副省级?|为教育打几个机灵|预算黑洞一例|
       官不贵,民不贱|生了麻烦|轿车不如轿子说|这回确是个别|血和泪构成的笑话|给张艺谋松绑吧",
       "做并享受着*与白岩松笑谈|比谁写的后");
    var infoA=new Array("环球风采*法国建成绿色学校|俄罗斯第一夫人温情谈恋史|法国人才外流有原因|
       德国电脑人才可破例|德国慕尼黑啤酒节",
       "人物春秋*我所知道的胡乔木|自信些,迎接全球化|红与黑");var mywork=new Array("",info,infoA);
    function stringSplit(string,delimiter){
       if(string==null || string==""){
         return null;
          }else if(string.split!=null){
           return string.split(delimiter);
             }else{
               var ar=new Array();
               var i=0;
               var start=0;
             while(start>=0 && start<string.length){
             var end=string.indexOf(delimiter,start);
             if(end>=0){
             ar[i++]=string.substring(start,end);
             start=end+1;
              }else{
                ar[i++]=string.substring(start,string.length);
                 start=-1;
                  }
          }
            return ar;
       }
    }
    var menu1=new Array();
    var menu2=new Array();function createMenus(wh){
          var infoname=new Array();
          infoname=mywork[wh];
          for(var i=0;i<infoname.length;i++){
          menu1[i]=stringSplit(infoname[i],'*');
          menu2[i]=stringSplit(menu1[i][1],'|');
        }
         var author=document.myForm.main;
         var book=document.myForm.title;
         author.length=infoname.length;
         book.length=menu2[0].length;
         for(var i=0;i<infoname.length;i++){
         author.options[i].value=menu1[i][0];
         author.options[i].text=menu1[i][0];
        }
        document.myForm.main.selected=0;
        for(var x=0;x<menu2[0].length;x++){
        book.options[x].text=menu2[0][x];
        book.options[x].value=menu2[0][x];
        }
       document.myForm.title.selected=0;
     }function updateMenus(what){
       var sel=what.selectedIndex;
       if(sel>=0 && sel<menu1.length)
       var temp=menu2[sel];
       else
       var temp=new Array();
       what.form.title.length=temp.length;
       for(var i=0;i < temp.length;i++){
       what.form.title.options[i].text=temp[i];
       what.form.title.options[i].value=temp[i];
       }
       what.form.title.selected=0;
     }
     </script></head>
    <body background="" bgcolor="#ffffff" text="#400040" link="#ff0080" vlink="#ff8080" alink="#ff0000">
    <center><h1>动态下拉菜单</h1></center>
    <form action="test2.jsp" name="myForm" method="post"><p>
    分类:&nbsp;
    <select name="my" size="1" onchange="createMenus(document.myForm.my.selectedIndex)" class="smallsel"><option value="info">杂文报</option>
    <option  selected>书刊报</option>
    </select>
    <p>
    作者:&nbsp;
    <select name="main" size="1" onchange="updateMenus(this)" class="smallsel">
    <option>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
    <<option></option>
    <option></option>
    </select>
    <p>
    标题:&nbsp;
    <select name="title" size="1" class="smallsel" onchange="updateMenus(this)">
    <option>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
    <option></option>
    <option></option>
    </select>
    <input type="button" value="submit" onclick="parent.location.href='http://www.
    heheidaily.com.cn'">
    </form>
    </body>
    </html>
      

  3.   

    5楼你这个也还是哪样,刷新了不会还原
    我的加了alert(oCourses.options[oCourses.selectedIndex].value) 
    这一行就正常了,但把它注释了又成那样,我的是ie6.0,直接运行html文件出现这样的情况
      

  4.   

    刚才没有仔细看,加了
    alert(oCourses.options[oCourses.selectedIndex].value)
    弹出确定框时左边和右边正常,点确定时,右边变成以前的记录了
    想不通.....