javascript .onchange не работает в IE Edge при первом нажатии - PullRequest
1 голос
/ 11 марта 2019

У меня проблема с .onchange только в IE Edge.

Для загрузки файлов у меня есть этот HTML:

<div id="drop_file_zone" ondrop="upload_file(event)" ondragover="return false">
    <div id="drag_upload_file">                                                                                                     
        <p>DROP FILE(S) HERE</p>
        <p>or</p>

        <p><input class="browse btn" type="button" value="Browse" onclick="file_explorer();"></p>
        <input type="file" id="selectfile" name="upload" multiple>

    </div>
</div>

JavaScript:

var fileobj;

function file_explorer() {

    document.getElementById('selectfile').click();
    document.getElementById('selectfile').onchange = function() {
      for (var i=0; i< this.files.length;i++){ // multiple files uploading
        fileobj = document.getElementById('selectfile').files[i];
        ajax_file_upload(fileobj);
      }
    };

}

Что происходит: только в IE Edge, при первом открытии проводника и поиске файла, файл не "выбран". Когда я снова открываю проводник и выбираю другой файл, файл выбирается.

DEMO: https://jsfiddle.net/ayw104L7/1/

Вы видите, что IE Edge не выдает предупреждение "файл выбран" в первый раз

...