Jquery 在循环中提交表单

Jquery 在循环中提交表单,jquery,forms,loops,submission,Jquery,Forms,Loops,Submission,我有一个PDF生成器,它以完整的HTML文档字符串作为参数,然后打开在新选项卡/窗口中创建的PDF,或者下载文件。我被要求连接一个表单,它允许生成一个证书,该证书使用分号分隔的名称并从中生成多个PDF。下面是执行此操作的代码: $("#certgensubmit").click(function (event) { // Get the names to generate certificates for. var names = $("#presented-to").html

我有一个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中使用不同的值多次触发表单提交。剩下的只是上下文。

也许你不能多次提交表单

因此,将提交函数更改为post,并删除表单标记

....

$("#HtmlContent").val(html);

$.post("pdf_creator.php",
{
  input_name:$("#HtmlContent").val()
},
function(data,status){
  //alert("Data: " + data + "\nStatus: " + status);
});

....


<!--<form action='pdf_creator.php' id='pdfform'> //form tags out -->
    <input type='text?' name='input_name' id='HtmlContent' value=''>
<!--</form>-->
。。。。
$(“#HtmlContent”).val(html);
$.post(“pdf_creator.php”,
{
输入名称:$(“#HtmlContent”).val()
},
功能(数据、状态){
//警报(“数据:+数据+”\n状态:+状态);
});
....

希望这能起作用,并对您有所帮助。

您是否想过创建一个包含多个证书的PDF,每页一个证书?尝试添加延迟,看看会发生什么。。。睡觉什么的。