определить завершение отправки формы с помощью jquery - PullRequest
3 голосов
/ 05 апреля 2011

Как мы знаем, вы не можете создать загрузку файла через ajax.

вы можете отправить форму, которая создаст приглашение на загрузку.

Я создаю довольно большой файл, когда пользователинажимает кнопку, чтобы отобразить сообщение в стиле «пожалуйста, подождите».

Мой вопрос:

Как я могу определить, когда отправка формы завершена, поэтому было показано диалоговое окно?

(это чтобы скрыть сообщение)

Ответы [ 2 ]

0 голосов
/ 05 апреля 2011

Поместите перенаправление, когда отправка формы прошла успешно. Если перенаправление попадет в файл, который браузер не может отобразить - начнется загрузка.

В моем случае я возвращаю код JavaScript из обработчика отправки формы, который формирует виджет eval () s. Этот код может быть перенаправлением на штраф, который только что был произведен серверной частью.

Может быть, мой пост в блоге о лучших практиках AJAX Forms будет полезен: http://agiletoolkit.org/blog/forms/

Если вы хотите, чтобы все было просто, то:

  1. добавить обработчик form.onSubmit, он должен предотвращать действие по умолчанию, собирать данные формы и отправлять на сервер. Вы можете использовать некоторый плагин представления ajax для jQuery.
  2. сервер должен проанализировать данные, подготовить файл и отправить обратно имя файла в браузер.
  3. Ваш JS-код выполняется после завершения передачи (обратного вызова) и перенаправляет в файл через document.location.

В Agile Toolkit все будет так просто:

$f=$p->add('MyForm');
if($f->isSubmitted()){
    $f->js()->univ()->location(prepare_file($f->getAllData()))->execute();
}
0 голосов
/ 05 апреля 2011

Может быть, вам стоит попробовать что-то вроде этого

http://www.iamkumaran.com/xdownloader-a-flash-javascript-library/

Посмотрите демонстрацию, как работает загрузка файлов, и я надеюсь, что она может вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...