清除后将相同文件上传到文本框中,在Chrome中无效

时间:2015-10-02 22:21:32

标签: javascript jquery html angularjs google-chrome

我正在尝试使用此示例:

http://jsfiddle.net/200eoamf/1/

这是代码的一部分,你可以看到jsfiddle中的所有代码:

var onFileReadFn = $parse(attrs.onReadFile);
var reader = new FileReader();

reader.onload = function() {

    var fileContents = reader.result;

    // invoke parsed function on scope
    scope.$apply(function() {
        onFileReadFn(scope, {
            'contents' : fileContents
        });
    });
};

reader.readAsText(element[0].files[0]);

Chrome 浏览器中出现以下问题,但 Firefox 中未出现此问题:

如果我选择文件,例如 myfile.txt ,它将显示在文本框中。 但是,如果我通过选择整个文本并删除它来手动清除该窗口,然后再次尝试上传相同的文件 myfile.txt ,则不会上传。为什么会发生这种情况以及如何解决?感谢。

1 个答案:

答案 0 :(得分:1)

您有两个选项,一个是使用清除按钮,因此用户可以手动执行此操作,另一个选项是在用户单击输入时清除上一个文件的值。以下是后者:http://jsfiddle.net/200eoamf/12/

element.bind('click', function() {
  element.val(null);
});

感谢Blake Plumb the idea! :)