2
我有一个PDF生成器,它将完整的HTML文档字符串作为参数,然后打开在新选项卡/窗口中创建的PDF或下载文件。我被要求连接一个表单,这个表单可以创建一个以分号分隔的名称并从中生成多个PDF的证书。这是它的代码:在循环中提交表单
$("#certgensubmit").click(function (event) {
// Get the names to generate certificates for.
var names = $("#presented-to").html().split(';');
$.each(names, function(index, value) {
if(value.length > 0) {
var presentedBy = $("#presented-by").html();
var awardName = $("#award-name").html();
var presentedDate = $("#presented-date").html();
var signerName = $("#signer-name").html();
var html = getCertificateHTML(presentedBy, value, awardName, presentedDate, signerName);
//console.log(html);
$("#HtmlContent").val(html);
$("#pdfform").submit();
}
});
});
这有效,除了它只创建第一个证书PDF。不过,它每次都在处理代码。如果我取消注释“console.log(html)”这一行,我会在Chrome的控制台中看到正确的输出。我可以通过在循环中用JavaScript创建一个新文档并运行表单提交。唯一的问题是,它只在发送给PDF生成器的字段中放置文本,但在生成器需要的字段中发送HTML时完全失败。因此,看起来这个问题与在创建PDF期间打开新标签有关。我需要这样做,所以用户不会从接受PDF输入的UI中被带走。
不要太在乎PDF生成方面 - 我只需要知道如何在jQuery每次循环中多次触发表单提交并使用不同的值。剩下的只是上下文。
您是否想过创建一个包含多个证书的PDF,每页一个证书? – slashingweapon 2013-04-23 18:40:34
尝试添加一个延迟,看看发生了什么...睡眠()或什么的。 – 2013-04-23 19:00:54