на кнопке висит change:
<input type="file" id="inp" />
$('#inp').change(function(e) {
alert('a');
});
пользователь нажал, выбрал файл в диалоге, и подтвердил
alert сработал
пользователь нажал, выбрал тот же файл, подтвердил
alert не сработал
почему система не вызывает событие во второй раз?
так заработало:
$('#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" />
Второй раз change не срабатывает, поскольку ты выбираешь тот же самый файл. Т. е. изменение как бы и не произошло. Если выбрать другой файл, то всё сработает.
Если действительно нужна обработка выбора того же файла, можно сбрасывать значение input'а - в таком случае оно каждый раз будет меняться на выбранный файл.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей