Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Симуляция собития (https://javascript.ru/forum/misc/2417-simulyaciya-sobitiya.html)

Anyk 23.12.2008 12:30

Симуляция собития
 
Есть ссылка и скрытый элемент формы <input type='file'>
Вопрос следующий:
каким образом кликнув на ссылку вызвать окно выбора файла и отправить после этого отправить форму на сервер? (ну последнее вроде obj.submit(), а вот с первым как незнаю быть)

Заранее спасибо!

Gvozd 23.12.2008 12:47

Если я вас правильно понял, то никак
JS в целях безопасности не предоставляет средств по изменению поля типа file
по идее вы его даже и вызвать, вместо пользователя не сможете, но насчот этого я не уверен
можно конечно попытатся какой-нить IE-хак применить.
но для этого в нем должна быть абсолютно отклоючена безопасность.
во вторых, скорее всего все равно не получится, в связи с блокировкой JS во время открытия окна выбора файлов.

Kolyaj 23.12.2008 13:25

В IE у элемента file можно вызвать метод click. А на событие onchange повесить отправку формы. Но во всех браузерах это работать не будет.

Anyk 23.12.2008 13:51

Тогда как сделано тут: http://www.picamatic.com/?lang=ru

Anyk 23.12.2008 13:53

Ajax часть не интересует, интересует именно процес выборки файла не через элемент формы!

vk65535 23.12.2008 15:06

Фаер баг говорит, что мухлюют они, хитрецы.
Когда наводишь на ячейку - оно под курсор и подсовывет инпут типа файл полностью прозрачный, и, когда тырцаешь - попадаешь аккурат в него, хоть его и не видно.

Андрей Параничев 23.12.2008 17:21

vk65535,
Это единственное более-менее кросс-браузерное решение.

Anyk 27.12.2008 03:36

А можно как то разобрать это, ну что бы понятно было всетаки как оно там делается?
КОпался в коде, но безуспешно (

x-yuri 27.12.2008 05:07

http://habrahabr.ru/blogs/ui_design_...ability/30560/


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