我刚刚检查了所有重置/清理选项 <input type='file' />
基于
Clearing <input type='file' /> using jQuery
而且所有这些都不起作用。
我在页面中所做的是以正常方式提交新文件并更新页面。
HTML
<form>
<input type="file" name="file" id="fileUploader" class="btn btn-sm btn-default" />
</form>
然后我有 AJAX 链接来删除上传的文件。所以我在 Session 和 AJAX 回调中删除它,就像
//Reset
var uploader = $("#fileUploader");
window.reset = function (uploader) {
e.wrap('<form>').closest('form').get(0).reset();
e.unwrap();
}
uploader.reset();
// Clear all file fields:
// $("input:file").clearInputs();
// Clear also hidden fields:
//$("input:file").clearInputs(true);
//$row.replaceWith($row = $row.val('').clone(true));
但是在此之后,当我执行 F5/Update HttpPost 时,会发生并且它已发布文件。
如何解决?
附注 即使我做了以下事情也没有快乐......
$('#inputFileForm').html("");
$('#inputFileForm').append(
// <input type="file" name="file" id="fileUploader" class="btn btn-sm btn-default" />
$('<input/>').attr('type', 'file').attr('name', 'file').class("btn btn-sm btn-default")
);
最佳答案
清除文件输入的唯一可靠方法是替换元素,因为某些浏览器(主要是 IE)不允许您重置文件输入的值
var input = $("#fileUploader");
input.replaceWith(input.clone(true));
这会保留事件,但会清除输入值(不会克隆值)
关于javascript - 如何在 ASP.NET MVC 中重置 <input type ='file'/>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23615511/