我记得里面的不用分号吧。
var aa=eval("document.DisplayForm."+name+".value");

解决方案 »

  1.   

    你这样写很怪,而且我建议变量名不要用name关键字
    var xname=eval("document.DisplayForm.chkID[i].value")+"_name";
    var aa=eval("document.DisplayForm."+xname+".value");
      

  2.   

    把eval("name=document.DisplayForm.chkID[i].value+'_name';");里面的分号去掉就对了.
      

  3.   

    我用如下的代码进行了测试,没发现楼主所述问题:
    <html><head>
    <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>新建网页 1</title>
    <script>
    function test(i)
    {
      eval("name=document.DisplayForm.chkID[i].value+'_name';");
      var aa=eval("document.DisplayForm."+name+".value;");
      
      alert(aa);
    }</script>
    </head><body>
    <form name="DisplayForm">
     <input  type="checkbox" name="chkID" value="c0" onclick="test(0)">
     <input  type="checkbox" name="chkID" value="c1" onclick="test(1)">
     <input name="c0_name" type="text"  value="you are Clicking c0" size="20" >
     <input name="c1_name" type="text"  value="you are Clicking c1" size="20" ></form>
    </body>
    </html>分号是可有可无的,不用name等关键字是好习惯,尽管在这里不发生错误。我在vs.net里也遇到相似的问题,javacript脚本(放在单独的文件里)明明没写错,运行时却总是提示脚本错误,后来把脚本中的某些 中文注释 去掉可以解决问题,我也不知为什么。但这不是解决问题的最终方法,总不至于不用中文注释吧,请高指点一二...,好像与web.config文件有关。