Я недавно внедрил решение jQuery / iframe для загрузки файлов и столкнулся с довольно раздражающей проблемой (конечно, только в IE).
После нажатия кнопки загрузки и выбора файла для загрузки я автоматически отправляю форму, содержащую файл, в свой iframe. Однако я должен щелкнуть в любом месте страницы, чтобы процесс отправки обработал и запустил действие в моем контроллере.
Я полагаю, что проблема заключается в том, что iframe получает фокус, что, по-видимому, мешает функции 'change' завершить выполнение, но я не совсем уверен. Возможно, для того, чтобы iframe переместила фокус на исходную страницу, чтобы продолжить выполнение, требуется какой-либо тип функции загрузки?
Код:
Загрузка формы и файла:
<form id="attachForm" action="<%= Url.Action("TestUpload","Images") %>"
method="post" enctype="multipart/form-data" target='upload_target' >
<input id='actualupload' type='file' multiple="" name='file' />
</form>
<iframe id='upload_target' name='upload_target' src=''
style="width:0; height: 0; border: 0;" frameborder="0"></iframe>
jQuery для отправки формы:
$("#actualupload").live('change',function()
{
$("#attachForm").submit();
alert("Fired!"); //This only occurs after clicking on the screen after the
//file selection.
});