Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Закачка файлов JS (https://javascript.ru/forum/misc/6798-zakachka-fajjlov-js.html)

Deller 23.12.2009 15:37

Закачка файлов JS
 
Точнее даже не закачка. Есть поле
<input style="display:none;" type="file" id="id1">
и есть некая ссылка.
<a href="#" onclick="addfoto(); return false;">
Так вот, как сделать чтобы при нажатии на ссылку появлялось окно выбора файла ( как при нажатии кнопки обзор около инпута) и соответственно выбранный файл добавлялся в поле инпут. Буду очень благодарен за подсказку.

x-yuri 23.12.2009 16:19

надо чтобы твой input type="file" был невидимым и под мышкой, когда ты щелкаешь. Т.е. чтобы фактически ты щелкал по невидимому input type="file"

micscr 23.12.2009 17:03

Цитата:

Сообщение от x-yuri (Сообщение 38952)
надо чтобы твой input type="file" был невидимым и под мышкой, когда ты щелкаешь. Т.е. чтобы фактически ты щелкал по невидимому input type="file"

Интересно как невидимый элемент получит событие? Да и контейнером input не является также.

Deller если что-то придумаешь отпиши плиз - интересно. А то я тоже не знаю как такое сделать и можно ли вообще.

Deller 23.12.2009 17:36

все решил. Надо быть проще, мы сами себе жизнь усложняем. Делаем вот так style="opacity:0;" для инпута (невидимость не надо). А ссылку над кнопкой "обзор" инпута.:)

Kolyaj 23.12.2009 18:00

Цитата:

Сообщение от Deller
Делаем вот так style="opacity:0;" для инпута (невидимость не надо).

x-yuri про это и говорил.

Deller 23.12.2009 18:02

Цитата:

Сообщение от Kolyaj (Сообщение 38960)
x-yuri про это и говорил.

Да я понял. просто догадался чуть раньше чем он написал. А потом уже зашел сюда на форум. Но за желание помочь всем респект.

micscr 23.12.2009 18:17

Deller, везде работает? В ИЕ6?

PeaceCoder 23.12.2009 23:07

Цитата:

Сообщение от Deller
А ссылку над кнопкой "обзор" инпута.

Я бы сказал наоборот. Ссылку под инпут. иначе событие получает ссылка а не кнопка. или так работает? такими махимахами не занимался...

Rinas 17.07.2012 02:39

Ваше решение - бред. opacity работает только в CSS3, следовательно этот вариант не кроссбраузерный. Это делается по-другому.
Создается элемент <input type='file' id='file'> и <div></div>. у инпута ставится css свойство display:none. Затем

$("div").click(function(){
$("#file").trigger('click');
});

После этого выбранный файл лежит в форме, которую не видно. вы можете создать кнопку <input type='submit'> или просто отслеживать событие изменения элемента с id='file'. После этого ajax'ом отправлять данные на сервер, для этого есть jquery плагин ajaxForm

плагин

Deff 17.07.2012 03:22

Цитата:

Сообщение от Rinas
у инпута ставится css свойство display:none.

В ИЕ скрытый инпут в форме - недоступен, нун скрывать z-index и position:relative


Часовой пояс GMT +3, время: 23:22.