h="form1."+h+".options("+s+").selected";
h是一个常量,不能被赋值了
而form1.D1.options(2).selected是一个属性,是可以赋值的

解决方案 »

  1.   

    不能直接赋值,这样就行了
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>新建网页 1</title>
    <script language=javascript>
    function cls(s){
    form1.D1.options[s].selected=true;
    }
    </script>
    </head>
    <body><form name="form1" method="POST" action="--WEBBOT-SELF--">
    <!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
    <p><select size="1" name="D1">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    </select><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"><input type="button" value="按钮" name="B3" onclick=cls(2)></p>
    </form></body>
      

  2.   

    但怎么用参数h,s来实现form1.D1.options(2).selected呢?
      

  3.   

    function cls(h,s){
    h="form1."+h+".options("+s+").selected";
    alert(h);
    h=true;
    }
    =>
    obj = eval("form1."+h+".options("+s+").selected);
    alert(obj);
    obj=true对象转换问题