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= ' <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控件内容,直至没有上报文件内容,触发时间(点击【返回】存在同样问题),不知道这是怎么回事。--代码已经过删减,
to:2楼
断点设了,没进入后台代码。
我也没写删除file控件内容的脚本
这里面加上 runat="server" 应该就没事了
http://tystk.vicp.net/test/Default2.aspx具体代码下载地址:
http://tystk.vicp.net/test/Default2.aspx/test.rar问题解决立即结题。
这句代码注释掉就可以了
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"
}
G('_upfile'+i).click();
这句改成这样的形式试试
G('_upfile'+i).click=function()
{
//js
}
{
//js
}
这样写不会出现你那样的情况,我测试过了我认为把这句G('_upfile'+i).click;删掉,用其它办法也可以删除file控件
具体不清楚你要达到什么要的效果
可以删除td,或隐藏td达到这样的效果