【发布时间】:2012-06-18 06:39:26
【问题描述】:
我正在尝试一次提交两个表单(一个去 db,另一个去 fpdf 制作标签)。我使用 jquery 将变量从第一个表单复制到第二个表单的隐藏输入。我已经看到这个问题在这里问了几次,但没有一个答案有帮助。我使用“假”ajax 方法 - 即:我将表单目标设置为同一页面上的隐藏 iframe。所以我想提交一个表单,然后使用延迟然后提交第二个表单(因为没有延迟就无法工作!)
那么如何给这段代码添加延迟:
$('#insert').submit(function() {
//Delay here please, or is it timeout I need?
$('#print').submit();
});
<form id="insert" action="insert.php" target="hiddeniframe">
// a bunch of inputs
<input type="submit" value="submit">
</form>
<form id="print" action="pdf.php" target="hiddeniframe">
// a bunch of inputs
</form>
【问题讨论】:
-
@ChristianVarga 我以前从未使用过 ajax,所以我尽量保持简单。此外,即使我要使用 ajax,我相信我仍然会遇到同样的问题。
-
pdf.php 脚本究竟做了什么?它会返回一些东西,还是在服务器上创建一个文件?没有理由不能一次提交 2 个 ajax 请求(尽管老实说,您应该只将数据发送一次到服务器上的一个操作,然后在那里拆分插入和 pdf 操作)。
-
@ChristianVarga 实际上要求 pdf 表单的目标是转到 iframe。因为 PDF 设置为自动打印,浏览器会立即通过 iframe 打开并打印。
-
要在延迟后执行函数,您可以像这样使用 setTimeout:
setTimeout(function(){ ... }, time),其中“时间”以毫秒为单位。不过,我认为您不是您想要做的,因为您无法确定响应需要多长时间。看到这个问题stackoverflow.com/questions/3064865/…(在onload中执行)