2012-01-23 3 views
1

У меня следующая ситуация:запуская входной файл

<input id="upload_trigger_btn" type="file" name="files[]" multiple> 
<a type="submit" class="button-normal-12px-ffffff" href="#"><span>Add files</span></a> 

$(".add_files_btn").bind("click", function() { 
    $("#upload_trigger_btn").trigger("click"); 
}); 

Поэтому в основном я хочу, чтобы вызвать входной файл с помощью другого. Это отлично работает в Firefox и IE, но кнопка не запускается в хроме и сафари.

+1

В последний раз я пытался сделать это, я обнаружил, что это не представляется возможным, чтобы вручную вызвать этот диалог в хроме и сафари. С тех пор прошло некоторое время, поэтому, возможно, кто-то еще придумал решение. –

+0

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

ответ

1

Я думаю, вы могли бы уйти с:

$(".add_files_btn").unbind("click").bind("click", function() { 
    $("#upload_trigger_btn").click(); 
}); 
+0

К сожалению, это тоже не работает. – vincent

+0

- элемент управления 'upload_trigger_btn' видимый? – IamDeveloper

+0

нет, его на дисплее нет – vincent

1

EDIT

В большинстве случаев вы можете вызвать событие так:

$(".add_files_btn").click(function(){ 
    $("#upload_trigger_btn").click(); 
}); 

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

Reference ->https://stackoverflow.com/a/3030174/992435

+0

Не работает либо – vincent

+0

По-видимому, это невозможно с полями файлов. Насколько я понимаю, это риск для безопасности, и несколько браузеров этого не допускают. Код, который я написал первоначально, работал в хроме, но не в FF. – VictorKilo

+1

Кажется, это возможно, но вы не можете использовать display: none в поле файла, если вы хотите вызвать его. Когда вы используете видимость: скрытый, он работает. – vincent

3

Вы можете сделать {» видимость ':' hidden '} с высотой: 0px и блок отображения, триггер будет работать с ним.

+0

уже ответил в комментарии, не проверял комментарий: P – MZH

-1
 <div class="btn btn-default fileinput-button "> 
     <span><i class="fa fa-cloud-upload pr-10" aria-hidden="true"></i>UPLOAD FILE</span> 
     <input id="fileupload5" type="file"> 
     </div> 

.fileinput-button input { position: absolute; top: 0; right: 0; margin: 0; opacity: 0; -ms-filter: 'alpha(opacity=0)'; font-size: 200px; cursor: pointer; }

Смежные вопросы