0

Есть file input, нужно, чтобы при нажатии например на ссылку <a>Выбрать файл</a> нажимало на input и выбирало файл. click() не во всех браузера работает, а focuc() вообще не работает, как выкрутится?

4 ответа 4

1

Можно с использыванием триггера это реализовать. Смотрите пример

4
  • библиотеки сказали не использовать )
    – ashorva
    11 авг 2012 в 16:08
  • Чего ж сразу не сказали? А JS использовать хоть можно? )) Тогда вот вам такой вариант
    – Deonis
    11 авг 2012 в 16:21
  • >>. click() не во всех браузера работает а focuc() вообще не работает
    – ashorva
    11 авг 2012 в 16:21
  • @ashorva, наверно... В IE5.5 не проверил, но возможно, что в нем работать не будет. Ой, бяда... Кроме него проверил в осле версий 7+, FF, Opera, Safari. Тут, как ни странно, работает.
    – Deonis
    11 авг 2012 в 16:25
0

И это очень хорошо, что не работает...

Принцип такой: положить поверх ссылки прозрачный input type=file, так, чтобы его координаты совпадали с границами ссылки. Получится, что клик "как бы по ссылке" будет фактически происходить на инпуте.

4
  • чем же хорошо?)
    – ashorva
    11 авг 2012 в 15:22
  • 3
    Тем, что возможность автоматически засабмитить форму - стандартная и есть всегда. Объяснять, чем это может быть опасно, если input file будет поддерживать ВСЕ события?
    – user6550
    11 авг 2012 в 15:24
  • понял) кстати лиса поддерживает click()
    – ashorva
    11 авг 2012 в 15:31
  • Да, объяснять. Потому что поместить файл в этот инпут без участия пользователя всё равно не получится.
    – Qwertiy
    16 сен 2015 в 18:41
0

чтобы при нажатии например на ссылку <a>Выбрать файл</a> нажимало на input и выбирало файл

Ну так и замени ссылку на label. Зачем мудрить??

-1

label for=id не подходит? Попробуйте еще inputEl.trigger("click").

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.