2010-02-05 2 views
2

У меня есть модальное окно, представляющее форму для пользователей. Форма включает в себя одну или несколько загрузок файлов. Поэтому я не могу представить форму с помощью ajax.Обратный звонок для отправки формы (с jQuery)

На данный момент я делаю стандартную подачу с помощью кнопки отправки. Когда форма отправляется (что занимает несколько секунд в целом), PDF создается и отправляется обратно для загрузки (т. Е. Content-Disposition: заголовок вложения), чтобы принудительно загрузить. Когда загрузка данных формы завершена, мне нужно закрыть модальное окно. Если я вызову метод close прямо, представление никогда не завершается, и загрузка файла никогда не запускается (я думаю, это потому, что модальное окно удалено из DOM). Я могу установить тайм-аут, но может быть n количество изображений, поэтому время, которое требуется для загрузки, непредсказуемо (и относительно количества загрузок).

Я посмотрел плагин формы jQuery (http://jquery.malsup.com/form/#file-upload), но, по-видимому, он использует iframe для загрузки файлов, поэтому я не уверен, что он достигнет того, что мне нужно.

Спасибо за любую помощь,

Дом.

ответ

0

Переписанный пересматривая вопрос. Вот что я попробую:

  1. Сериализуем форму и возвращаем ее из диалогового окна, то есть передаем данные обратно на страницу.
  2. Закройте диалоговые
  3. Отправить сериализированную форму
+0

Файл передается потоком, поэтому я не могу сделать GET в файле. Я знаю, что вы не можете сделать это с помощью ajax, поэтому я и спрашивал об этом. Я, очевидно, понимаю необходимость вызова в пределах обратного вызова, это было больше о том, было ли событие окна или документа, которое я могу связать, когда начнется загрузка файла. Ive проверил плагин формы, но обратный вызов после отправки никогда не запускается. Предварительная подача выполняется нормально, форма подает штраф, загрузка файла, но ничего не происходит, когда после отправки формы (т. Е. Обратного вызова после отправки). – Dominic

+0

Ах, перечитайте вопрос и поняли, что вы делаете это как синхронный POST. Наверное, я просто пропустил первое предложение. И теперь я понимаю, почему вам нужен тайм-аут. Отредактированный ответ. – 2010-02-05 03:19:57

+0

Невозможно сериализовать файловые объекты :( – Dominic

1

Form plugin Вы упомянули, что должны работать - почему вы подозреваете, что это не так?

+0

Я использовал форму плагин для загрузки себя. Скрытый таргетинг iframe является стандартной практикой для загрузки «ajax». – 2010-02-05 01:42:36

+0

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

+0

@Dominic. Разве вы не можете скрыть модальность, а не уничтожить ее? – 2010-02-06 23:23:12

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