javascript - 为什么从文件选择对话框中选择同一文件后不能立即再次选择该文件?

标签 javascript html

考虑以下 HTML:

<input id="file" name="file" type="file"></input>
<div id="filenames"></div>

以及相关的 JavaScript:

window.onload = function() {
    var el = document.getElementById("file");
    el.addEventListener("change", fileSelected, false);
}
function fileSelected() {
    var gcUploadFile = document.getElementById("file").files[0];
    var filename = gcUploadFile.name || gcUploadFile.fileName;

    var fn = document.getElementById("filenames");
    var newP = document.createElement("p");
    newP.innerHTML = filename;
    fn.appendChild(newP);
}

此外,查找 the fiddle here .

现在我的麻烦是我似乎无法在选择一次后立即再次选择同一文件。但是,如果我在中间选择其他文件,我可以再次选择之前的文件。

为什么会发生这种情况以及如何防止这种情况发生?

提前致谢!!

最佳答案

实现此目的的一种方法是设置 value <input>的至null关于click事件,在 change 之前实际发生的情况,例如:

window.onload = function() {
    var el = document.getElementById("file");       
    el.onclick = function(){
        this.value = null;
    }        
    el.onchange = function(){
        var gcUploadFile = this.files[0];
        var filename = gcUploadFile.name || gcUploadFile.fileName;
        var fn = document.getElementById("filenames");
        var newP = document.createElement("p");
        newP.innerHTML = filename;
        fn.appendChild(newP);
    }
}

<强> jsFiddle here.

关于javascript - 为什么从文件选择对话框中选择同一文件后不能立即再次选择该文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22876985/

相关文章:

Internet Explorer 11 中的 JavaScript 错误

javascript - CSS Bootstrap 关闭模态并转到链接

css - 由于 CSS 问题导致移动站点重定向?

javascript - 浏览器返回在页面本身之前作用于嵌套的 iframe - 有没有办法避免它?

javascript - 我想获取 iframe 的内容,但发生错误

javascript - 在 Rails 中制作日期时间倒计时器

javascript - getValue 不适用于工作表

javascript - Angular : How to edit $scope from the console?

html - 网页分辨率不会随浏览器宽度变化而变化

html - 如何使用CSS获取轮廓刻度?