开发者

detect form submission finish with jquery

As we know you cannot create a file download via ajax.

you can however submit a form which will create a download prompt.

I am generating quite a big file when the users presses a button so I display a "please wait" style message.

My question is,

How can I detect when the form submission has finished, hence th开发者_高级运维e dialog box has been shown?

(this is to hide the message)


Place a redirect when form submission is successful. If redirect will hit the file which browser can't display - it will start download.

In my case I return JavaScript code from form submit handler, which form widget eval()s. That code could be a redirect to the fine which was just produced by the back-end.

Maybe my blog post about AJAX Forms best practices will be helpful: http://agiletoolkit.org/blog/forms/

If you wish to keep things simple, then:

  1. add form.onSubmit handler, it should prevent default action, collect form data and send to server. You can use some ajax submission plugin for jQuery.
  2. server should parse data, prepare file and send back the name of the file to browser.
  3. your JS code gets executed when transfer is complete (callback) and does redirect to the file through document.location.

In Agile Toolkit it would be as simple as this:

$f=$p->add('MyForm');
if($f->isSubmitted()){
    $f->js()->univ()->location(prepare_file($f->getAllData()))->execute();
}


Maybe you should try something like this

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

See the demo how file download works and I hope it may help you.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜