var i = 0;    // 用来动态生成span,upfile的id
function addAttachmentToList()

          
    // 动态创建附件信息栏并添加到附件列表中 
     tb = G('attachmentList2');    
     newRow = tb.insertRow(); 
     newRow.id='attachmentList_T'+i;
     newRow.insertCell().innerHTML=event.srcElement.value; 
     newRow.insertCell().innerHTML= '&nbsp;<a href="javascript:delAttachment(' + (i) + ')"><font color="blue">删除</font></a>';
          
     
}function selectAttachment()

    var o = document.body.getElementsByTagName('input'); 
    i=o.length-1;
    i++; 
    // 动态创建上传控件并与attachmentList2对应 
     tb = G('tbContent');    
     newRow = tb.insertRow(); 
     newRow.id='tbContent_T'+i; 
     var file='<input name="File" style="display:none"   onchange="addAttachmentToList();"        type="file" id="_upfile'+i+'"/>';
     newRow.insertCell().innerHTML = file; 
     G('_upfile'+i).click(); 
     
}  <form id="form1" runat="server" enctype="multipart/form-data">
   <table width="800" align="center 
 <tr>
                 <td align="left" colspan="4" >             
                <input type="button" value="添加文件" id="Button1" onclick="selectAttachment();" />
                 <input type="button" value="清空文件" id="btnClear"  onclick="clearAttachment();" />
                <div id="attachmentList" >          </div>
                <div><table id="attachmentList2">   </table></div>                
                <div><table id="tbContent">      </table></div>
                 </td>
  </tr>
     <tr> 
                   <td colspan="4" align="center"> 
                 <asp:Button id="btnAdd" runat="server" Text=" 上传 " OnClick="btnSend_Click"></asp:Button>
                       <asp:Button ID="btnBack" runat="server" OnClick="btnBack_Click" Text=" 返回" CausesValidation="False" /></td>
             </tr>     
</table >     
奇怪的问题:当我最后点击【上传】时,无法触发btnAdd事件,而是逐个删除file控件内容,直至没有上报文件内容,触发时间(点击【返回】存在同样问题),不知道这是怎么回事。--代码已经过删减,

解决方案 »

  1.   

    编译没有出错的,不知道您认为缺少什么引用了
    to:2楼
    断点设了,没进入后台代码。
    我也没写删除file控件内容的脚本
      

  2.   

     var file='<input name="File" style="display:none"   onchange="addAttachmentToList();"        type="file" id="_upfile'+i+'"/>';
    这里面加上 runat="server" 应该就没事了
      

  3.   

    在 btnAdd 的 OnClick事件中设断点看看。看样子应该是OnClick执行了,页面回传导致其它HTML内容丢失。
      

  4.   

    不是的,我设过断点,根本没有执行到OnClick
      

  5.   

    该问题我应发布网站,地址如下:
     http://tystk.vicp.net/test/Default2.aspx具体代码下载地址:
    http://tystk.vicp.net/test/Default2.aspx/test.rar问题解决立即结题。
      

  6.   

    先说一下,LT给的http://tystk.vicp.net/test/Default2.aspx/test.rar 链接是错误的,我好不容易才找到啊,Default2.aspx/这是不要的.我不知道这名代码有什么用,G('_upfile'+i).click(); 
    这句代码注释掉就可以了
    function selectAttachment()
    {
        // 先清除无效动态生成的多余upfile
        cleanInvalidUpfile();
        
        var o = document.body.getElementsByTagName('input'); 
        i=o.length-1;
        i++; 
        // 动态创建上传控件并与attachmentList2对应 
         tb = G('tbContent');    
         newRow = tb.insertRow(); 
         newRow.id='tbContent_T'+i; 
         var file='<input name="File"  runat="server"  onchange="addAttachmentToList();" size="60" type="file" id="_upfile'+i+'"/>';
         newRow.insertCell().innerHTML = file; 
      //   G('_upfile'+i).click(); // style="display:none" 
         
    }
      

  7.   

    不好意思,忘记把Default2.aspx/删掉了G('_upfile'+i).click(); 是file控件的点击事件的动态触发,我是想把file控件隐藏掉的,所以它的点击时间需要动态触发,去掉该句就无法动态添加附件了http://tystk.vicp.net/test/test.rar 
      

  8.   

    我觉得这句有点奇怪  G('_upfile'+i).click(); 
    G('_upfile'+i).click(); 
    这句改成这样的形式试试
     G('_upfile'+i).click=function()
              {
                  //js
             }
      

  9.   

    我也觉得问题有可能是在G('_upfile'+i).click(); 但不知道怎么改。楼上这样写也不对啊!
      

  10.   

    G('_upfile'+i).click=function() 
              { 
                  //js 
            } 
    这样写不会出现你那样的情况,我测试过了我认为把这句G('_upfile'+i).click;删掉,用其它办法也可以删除file控件
    具体不清楚你要达到什么要的效果
    可以删除td,或隐藏td达到这样的效果