Почему не срабатывает change, во второй раз?

484
07 февраля 2017, 22:32

на кнопке висит change:

<input type="file" id="inp" />
$('#inp').change(function(e) {
    alert('a');
});

пользователь нажал, выбрал файл в диалоге, и подтвердил

alert сработал

пользователь нажал, выбрал тот же файл, подтвердил

alert не сработал

почему система не вызывает событие во второй раз?

Answer 1

так заработало:

$('#inp').change(function(e) { 
    alert('a'); 
    $('#inp').val(null); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<input type="file" id="inp" />

Answer 2

Второй раз change не срабатывает, поскольку ты выбираешь тот же самый файл. Т. е. изменение как бы и не произошло. Если выбрать другой файл, то всё сработает.

Если действительно нужна обработка выбора того же файла, можно сбрасывать значение input'а - в таком случае оно каждый раз будет меняться на выбранный файл.

READ ALSO
странное поведение use в процедурном svg

странное поведение use в процедурном svg

Вопрос про процедурный svg

437
Загрузка большого видео-файла (более 2 гб) asp net

Загрузка большого видео-файла (более 2 гб) asp net

Есть необходимость загружать на сервер со стороны клиента большие видео-ролики (доступ к загрузке у узкого круга лиц, не более 10 чел) размером...

440
Выкидывание исключений в JavaScript

Выкидывание исключений в JavaScript

Бодрого вечера всемЕсть небольшой вопрос к знатокам javaScript

407
Создать слой с данными над html страницей в расширении для Firefox

Создать слой с данными над html страницей в расширении для Firefox

Подскажите, как создать дополнительный слой через расширение для FirefoxТо есть при нажатии на кнопку над текущей страницей должна появляться...

496