问题:如果两次选择了同一个文件,则不会为Input触发OnChange事件

时间:2019-02-11 17:33:44

标签: javascript jquery

每当用户选择文件时,我都需要监听文件选择事件(反复单击浏览器时) 按钮)。

但是,如果用户选择与以前相同的文件,则不会触发change事件。还有其他我可以听的事件,或者其他解决此问题的方法吗?

(function() {
  $('.file_upload').on('change', function() {
    console.log('Changed!');
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label class="btn btn-primary">File #1 <input name="file1" id="file1" class="file_upload a1" type="file" /></label>

1 个答案:

答案 0 :(得分:0)

在完成文件上传逻辑或执行任何操作之后,可以重置value属性。

See this post

var $f1 = $("#container .f1");

function FChange() {
    alert("f1 changed");
    
    $(this).prop("value", "");
}

$f1.change(FChange);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="container">
    <input type="file" class="f1">
</div>

提到的另一件事是,您实际上可以在更改时删除并重新添加文件输入元素。