如果if的条件成立,你都return   false;了,当然就跳出了

解决方案 »

  1.   

    function setid2()
    {
      str='<br>';
      if(!window.TaskAdd.upcount2.value)
       window.TaskAdd.upcount2.value=1;
        for(i=1; i<=window.TaskAdd.upcount2.value; i++){
         str+='文件'+i+':<input type="file" name=file'+i+' style="width:400" class="tx1" value="" size="20" onChange="ck_case('+i+',\'jsp\');"><br>';
      }
      window.upid2.innerHTML=str+'<br>';
    }
    这短是按照设定的数字生成FILE的。
    需要上传的文件个数 
      <tr><td>        <input type="text" name="upcount2" class="tx" value="1" size="20" onChange="setid2();">
              <input type="button" name="Button" class="button" onclick="setid2();" value="· 设定 ·" class="tx1">      </td>
           
        </tr>
        <tr> 
           <td colspan="2" id="upid2">
          <p align="left"> 文件1:
            <input type="file" name="file1" value="" size="20" onChange="ck_case(1,'jsp');">    
          </td>
    这段是设定上传文件个数的。
      

  2.   

    我自己判断应该是FOR和IF有冲突,当把IF注释掉的时候是能够正常循环的。
    把if里面的内容注释掉还是这个问题。
      

  3.   

    window.TaskAdd.upcount2
    你贴就帖全的帖了一半都没看到你变量的地方
      

  4.   

    不是怕人知道代码。是外面很多无关的东西。
    本身这些代码也都是我在网上找来修改的有什么怕人知道的。
    TaskAdd就是外面FORM的名字啊
      

  5.   

    唉。越弄越乱了。几个JS都不管用了老出未知的运行时错误
    下面是我整理出来的一段可以运行了。虽然功能都实现不了了
    可以看出的是把FOR里面那段IF注释掉的话能够ALERT 1,2,3,4出来吧IF留着就只能ALERT1
    <html>
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </style>
    </head><body><form  name=TaskAdd>
      
                  
                 文件1: <input   type="file"   name="file1"   value=""   size="20"   onChange="ck_case(1,'jsp');">  <br>
                   文件2: <input   type="file"   name="file2"   value=""   size="20"   onChange="ck_case(2,'jsp');"> <br>
                   文件3: <input   type="file"   name="file3"   value=""   size="20"   onChange="ck_case(3,'jsp');"> <br>
                    文件4:<input   type="file"   name="file4"   value=""   size="20"   onChange="ck_case(4,'jsp');">   <br>     
               
    <input type="button"  onclick="docheck();" value="· 检查 ·" >   
       
    </form>
    <SCRIPT LANGUAGE="JavaScript">
    function ck_case(num,_case){
    var oInput=document.TaskAdd.file1;
    var _obj


    _obj=oInput[num-1];


            var path=_obj.value.toLowerCase();        var pos=path.lastIndexOf(".");
            var filecase=path.substr(pos+1,_case.length);
           
            if (filecase==_case)
            {
             alert("您不能上传.JSP文件");
             _obj.select();
             document.execCommand('delete')
            }
    }
    function docheck() { for(i=1; i<=4; i++)
    {

    alert(i);
     var chk=document.getElementById("file"+i).value; 
      var chk1=document.getElementById("file"+i);
      alery(chk);
       if(isEmpty(chk))
          {
           alert("请选择你要上传的文件。");
     chk1.focus();
     return false;
        }
        
      }



    }
    </SCRIPT></body>
    </html>
      

  6.   

    哦。
    alery(chk);这个打错了
      

  7.   

    for(i=1;   i <=window.TaskAdd.upcount2.value;   i++) 
    改为:
    for(var i=1,len=parseInt(window.TaskAdd.upcount2.value);i <=len;i++) 
      

  8.   

    if(isEmpty(chk)) isEmpty在哪里?
      

  9.   

    isEmpty不是宏啊是个固有的函数吧。我就是判断CHK是不是空啊。
    我在网上查的就是直接用这个函数啊
      

  10.   

    for(i=1;       i   <=window.TaskAdd.upcount2.value;       i++)   
    改为: 
    for(var   i=1,len=parseInt(window.TaskAdd.upcount2.value);i   <=len;i++)  
    这个可用。功能实现了。
    但是为什么呢?赋值给另外一个变量就能用了。