anm*_*rti 5 javascript asp.net jquery input
这是我的代码:
<input ID="fileUpload1" runat="server" type="file" style="width:275px; position:absolute; left:1px"/>
Run Code Online (Sandbox Code Playgroud)
我尝试了一些解决方案:
$("input[type='file']").val('');
$('#DivfileUpload').replaceWith("<input class=VWButton ID=fileUpload1 runat=server type=file style=width:275px; position:absolute; left:1px/>");
Run Code Online (Sandbox Code Playgroud)
和许多其他人从网上但没有成功.
由于(明显的)安全原因,您无法设置文件输入的值.
如果要清除它,则需要重置其所在的表单.
用新的替换它也应该有效,但是用有效的代码来做.(这意味着不要尝试包含服务器端代码,例如ASP runat=server属性/值,并引用不是普通单词的属性值(例如你的样式属性)).
小智 7
出于安全原因,尝试使用.val('')设置值将在某些浏览器(如IE)中失败.
您最好的选择是重置表单:
$('form').trigger('reset');
Run Code Online (Sandbox Code Playgroud)
或者使用替换代码,稍作修改(确保HTML有效):
$('#fileUpload1').replaceWith('<input id="fileUpload1" type="file" style="width:275px; position:absolute; left:1px"/>');
Run Code Online (Sandbox Code Playgroud)
如果使用CSS设置框的样式,则代码变得更加简单.
CSS:
#fileUpload1 {
width: 275px;
position: absolute;
left: 1px;
}
Run Code Online (Sandbox Code Playgroud)
JavaScript:
$('#fileUpload1').replaceWith('<input id="fileUpload1" type="file"/>');
Run Code Online (Sandbox Code Playgroud)
更高级的选项是在加载页面时隐藏文件上载框,然后创建一个向用户显示的克隆.当您需要清除它时,删除克隆,然后重新克隆原始隐藏的克隆.如果要允许用户上载多个文件,此方法还允许您创建输入框的多个副本.我将把实施细节留给您.;)