javascript - 如何在 ASP.NET MVC 中重置 <input type ='file'/>

标签 javascript jquery html asp.net-mvc

我刚刚检查了所有重置/清理选项 <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 中重置 &lt;input type ='file'/>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23615511/

相关文章:

javascript - 创建 OpenID 登录小部件

Javascript this 在 jQuery 中

javascript - 在这个简单的例子中,在 componentDidMount() 之后使用 findDOMNode() 找不到 `ref`

javascript - 如何使用 css 创建中间有小中断的下划线?

jquery - 滚动页面时试图让 div 停留在顶部。它停留在顶部,但 CSS 正在变形

html - 无法在 CSS 左侧对齐文本

html - 当最大高度从 0 增加时,最大高度上的 CSS 过渡不会缓解(纯 CSS)

javascript - 如何遍历jquery选择

javascript - 在javascript中乘以错误的结果

javascript - MvcHtmlString 仍然编码字符