Задать вопрос
Evanre
@Evanre
Front-end developer

Как с помощью jQuery реализовать клик по input[type="file"]?

Необходимо стилизовать кнопку выбора файла. В макете не предусматривается поля с именем файла. т.е. мне просто нужно сделать красивую кнопку, клик по которой будет открывать окно выбора файла.
В интеренете полно всяких плагинов и прочей мути. Но почему я не могу скрыть нативный input и сделать элементарный клик по любому html элементу который можно реализовать как кнопкку? например label'у? Я сперва так и попробовал, но работает оно почему то криво: я кликаю по label'у, открывается окно выбора файла, я выбираю, жму "выбрать", окно закрывается и открывается опять снова, выбираю еще раз и только тогда все проходит, т.е. каждый раз вылетает окно 2 раза.
Почему данная конструкция работает криво?

<label for="file-input" id="file-input-label">добавить изображение</label>
	<input type="file" id="file-input" accept="image/jpeg,image/png,image/gif">

$("#file-input-label").click(function(){
	$("#file-input").click();
})


РЕШЕНИЕ: Разобрался в чем была беда: я кликал по лейблу, который уже был подвязан на инпут. т.е. срабатывал клик через jquery и еще один, нативный через label for="".
Так что можно делать это хоть через jquery, хоть через label for="". И так и так будет работать. Всем большое спасибо.
  • Вопрос задан
  • 2719 просмотров
Подписаться 2 Комментировать
Подписчики вопроса 2 К ответам на вопрос (2)