Задать вопрос
@adsprosto

Как с jquery поймать значение input[file]?

Поставлена задача:
При изменении файла в input file делать какие-либо действия, здесь отлично срабатывает on('change')
Вызывать эти события нужно постоянно, даже если файл не был измененён
Код написан такой:
$(function(){
$('[for=file]').on('click',function(){
$('#file').val('');
$('#file').on('change',function(){
if($(this).val() != ''){
alert($(this).val());
$(this).blur();
}
});
});
});
Проблема в том, что события срабатывают n+1 раз, то есть первый раз хорошо, во второй раз вызвано будет два алерта, как решить данный вопрос?
  • Вопрос задан
  • 976 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@adsprosto Автор вопроса
$(function(){
$('[for=file]').on('click',function(){
$('#file').val('');
var a = 0;
$('#file').on('change',function(){
if(a < 1){
if($(this).val() != ''){
alert($(this).val());
$(this).blur();
}
}
a++;
});
});
});
Но этот костыль мне не нравится, может кто знает решение?
Ответ написан
Комментировать
userAlexander
@userAlexander
Верстка наше все)
$('.upload-field').on('change', function(event){
	console.log(event.target.files[0].name);
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы