2013-04-18 4 views
0

У меня есть следующий код и элементы,JQuery: ждать какое-либо событие, чтобы завершить

function refreshcontent(){ 
       //refresh content ajax query 
    } 

$("#contentpage").on("submit","#fileuploadform",function(event){ 

     refreshcontent(); 

    }); 

    <form id="fileuploadform" action="fileupload" METHOD="POST" enctype=multipart/form-data target="_blank" > 
    <input type="file" name="myfile"/> 
    <input type="submit" value="upload"/> 
    </form> 
    <div id="contentpage"> </div> 

Я хочу, чтобы мой contentpage должен быть обновлен, когда моя форма полностью представлен. Мне известно о функции setInterval, и я могу использовать ее для вызова ajax refresh через некоторое время , но проблема в том, что мой размер файла не является постоянным, он может меняться и время, требуемое для отправки формы, может отличаться. также я не использую ajax (если так я мог бы сделать с помощью обработчика успехов)

Есть ли какое-либо решение для решения этой проблемы, можем ли мы подождать, пока моя форма не будет отправлена?

+0

Если вы не используете Ajax, ваша страница будет перезагружена в любом случае (и, таким образом, вы не имеете возможность запускать любой сценарий) – Kenneth

+0

Возможный обходной путь (не уверен, хотя) будет выполнять скрипт в новом окне, когда он загружается: 'window.opener.refreshcontent();' – Kenneth

+0

Да, теперь есть некоторые изменения, ранее они обновляли текущее окно перед загрузкой файла или до того, как было отправлено событие, поэтому мой файл не был загружен, может быть, объект события будет уничтожен до завершения, но теперь, когда я поставил 'window.opener.refreshcontent()' мой файл загружен, но моя contentpage div не обновляется .. это то, что скрипт запущен новое окно и не имеет ссылки на текущий windo ж? –

ответ

-1

Вы когда-нибудь пробовали с обещанием?

http://api.jquery.com/promise/

+0

Он не использует Ajax, просто сообщение в новой вкладке/окне – Kenneth

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