用jquery检测表单提交完成

时间:2011-04-05 01:27:42

标签: php jquery ajax forms

我们知道您无法通过ajax创建文件下载。

然而,您可以提交一个表格来创建下载提示。

当用户按下按钮时,我生成了一个很大的文件,因此我显示了“请稍候”的样式消息。

我的问题是,

如何检测表单提交何时完成,因此对话框已显示?

(这是隐藏信息)

2 个答案:

答案 0 :(得分:0)

表单提交成功后放置重定向。如果重定向将命中浏览器无法显示的文件 - 它将开始下载。

在我的例子中,我从表单提交处理程序返回JavaScript代码,它形成了widget eval()。该代码可以重定向到后端生成的罚款。

也许我关于AJAX Forms最佳实践的博文会有所帮助: http://agiletoolkit.org/blog/forms/

如果你想保持简单,那么:

  1. 添加form.onSubmit处理程序,它应该阻止默认操作,收集表单数据并发送到服务器。你可以为jQuery使用一些ajax提交插件。
  2. 服务器应该解析数据,准备文件并将文件名发送回浏览器。
  3. 您的JS代码在传输完成后(回调)执行,并通过document.location重定向到该文件。
  4. Agile Toolkit中,它就像这样简单:

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

答案 1 :(得分:-2)

也许你应该尝试这样的事情

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

请参阅演示文件下载的工作方式,我希望它可以为您提供帮助。