Событие выбора входного файла HTML не запускается при выборе того же файла
есть ли шанс обнаружить каждый выбор файла, который пользователь сделал для HTML input типа file элемент?
Это было задано много раз раньше, но обычно предлагалось onchange событие не срабатывает, если пользователь снова выбирает тот же файл.
4 ответов:
установите значение
inputtonullв каждомonclickсобытие. Это приведет к сбросуinput' s значение и вызватьonchangeсобытие, даже если выбран тот же путь.input.onclick = function () { this.value = null; }; input.onchange = function () { alert(this.value); };здесь демо.
Примечание: это нормально, если ваш файл с префиксом 'C:\fakepath\'. Это функция безопасности, которая не позволяет JavaScript знать абсолютный путь к файлу. Браузер все еще знает это внутренне.
<form enctype='multipart/form-data'> <input onchange="alert(this.value); this.value=null; return false;" type='file'> <br> <input type='submit' value='Upload'> </form>
this.value=null;необходимо только для Chrome, Firefox будет отлично работать только сreturn false;здесь скрипка
в этой статье под заголовком "использование формы ввода для выбора"
http://www.html5rocks.com/en/tutorials/file/dndfiles/
<input type="file" id="files" name="files[]" multiple /> <script> function handleFileSelect(evt) { var files = evt.target.files; // FileList object // files is a FileList of File objects. List some properties. var output = []; for (var i = 0, f; f = files[i]; i++) { // Code to execute for every file selected } // Code to execute after that } document.getElementById('files').addEventListener('change', handleFileSelect, false); </script>Он добавляет прослушиватель событий для "изменения", но я протестировал его, и он срабатывает, даже если вы выбираете тот же файл, а не отменяете его.
делайте все, что вы хотите сделать после успешной загрузки файла.сразу после завершения обработки файла установите значение file control в пустое string.so то .change () всегда будет называться даже имя файла изменяется или нет. например, вы можете сделать эту вещь и работал для меня, как шарм
$('#myFile').change(function () { LoadFile("myFile");//function to do processing of file. $('#myFile').val('');// set the value to empty of myfile control. });
Comments