2014-01-06 2 views
1

Я пытаюсь вызвать событие щелчка <input type="file" /> через javascript (onclick диалог выбора файла должен открыться). До сих пор я пробовал:Вход триггера [type = file] через javascript

$('#uploadFile').trigger('click') 
.trigger('submit') 
.submit() 
.post(); // Stacked for brevity 

Нет кубиков.

Есть ли что-то особенное в этом вводе, которое мешает этим подходам работать?

Вот Fiddle.

ответ

4

Некоторые из действий, совершаемых по умолчанию, предотвращаются браузером, если событие инициируется скриптом и не выполняется в инициализированном потоке пользователя по соображениям безопасности.

Смотреть это работает, если он запускается из обработчика другого щелчка (Пользователь должен нажать кнопку)

$('button').click(function(){ 
    $('#uploadFile').trigger('click') 
}) 

Демо: Fiddle

+0

@ M59 http://jsfiddle.net/arunpjohny/bcpV2/2/обновлено сейчас ... –

+0

Да, это сделал трюк. Любые комментарии по поддержке кросс-браузера? – monners

+0

@monners это должно быть хорошо, если у вас нет обработчика изменений во входном файле, где вы отправляете форму –