HTML输入类型=文件 - IE9上的奇怪行为

时间:2015-05-13 12:03:02

标签: javascript html input-type-file

我有一个input type=file可以在Chrome上正常运行,但是当我在Internet Explorer 9上尝试它时,点击该按钮不起作用,但如果我刷新页面它将起作用。如果我在那之后再试一次,那就再也不行了......

HTML

<div class="input-group">
     <span class="input-group-btn">
          <span class="btn btn-primary btn-file">
               Browse <input type="file" id="inputLogo" />
          </span>
     </span>
     <input type="text" class="form-control" readonly ng-model="logoName" id="logoName" />
</div>

CONTROLLER(ANGULARJS)

$("#inputLogo").fileReader({
    filereader: "js/lib/FileReader/filereader.swf"
});

$("#inputLogo").on('change', function (e) {
    var image = e.target.files[0];
    console.log("IMAGE:" + image);
    $scope.logoName = image.name;
    var filereader = new FileReader();
    filereader.onload = function (e) {
        var custLogo = e.target.result;
        while (custLogo.charAt(0) != "4") {
            custLogo = custLogo.substr(1);
        }
        custLogo = custLogo.substr(1);
        custLogo = custLogo.substr(1);
        $scope.logoBase64 = custLogo;
    }
    filereader.readAsDataURL(image);
});

修改 当我点击“浏览”按钮时没有任何反应。没有对话框弹出,没有控制台错误。 一切都在另一页上很好用。 我在这两者之间看到的唯一区别是,在马车上我的输入是在表格行中而且表格在ng-show(angularjs)

1 个答案:

答案 0 :(得分:0)

如果您第二次尝试选择相同的文件,则不会触发更改事件,因为该值不会更改。您必须在第一次之后重置输入值:

e.target.value = '';