Jquery 如何使HTML表单打印两个文件

Jquery 如何使HTML表单打印两个文件,jquery,html,ajax,perl,Jquery,Html,Ajax,Perl,我使用以下HTML块表示一个(隐藏)表单,其中包含我想要处理的感兴趣的数据,并在激活时打印到文件中: <form id="output_form" action="exportData.pl" method="POST" target="_blank" style="display:none;"> <input type="text" id="output_form_data" name="output_data" style=""> <input type

我使用以下HTML块表示一个(隐藏)表单,其中包含我想要处理的感兴趣的数据,并在激活时打印到文件中:

<form id="output_form" action="exportData.pl" method="POST" target="_blank" style="display:none;">
  <input type="text" id="output_form_data" name="output_data" style="">
  <input type="text" id="output_form_filename" name="output_filename" style="">
</form>
我想做的是在提交此表单时导出两个文件,而不是一个。第二个文件将使用不同的脚本进行处理,以便更改输出

到目前为止,我所尝试的:

我设置了两个隐藏表单:

<form id="output_form_1" action="exportData_1.pl" method="POST" target="_blank" style="display:none;">
  <input type="text" id="output_form_data_1" name="output_data" style="">
  <input type="text" id="output_form_filename_1" name="output_filename" style="">
</form>
<form id="output_form_2" action="exportData_2.pl" method="POST" target="_blank" style="display:none;">
  <input type="text" id="output_form_data_2" name="output_data" style="">
  <input type="text" id="output_form_filename_2" name="output_filename" style="">
</form>
但是,
submit()
仅在表单
output\u form\u 1
上调用。第二个表单
输出\u form_2
不会发生任何事情


如何提交两个隐藏表单以打印两个不同的文件?如果不能做到这一点,我将如何通过其他方式做到这一点?(注意,如果我使用客户端技巧,我不能使用Flash或Java,我需要能够支持IE用户。)

使用AJAX提交表单。在您的情况下,当第一个表单即将提交POST请求到
exportData_1.pl
时,当前页面上的代码执行将停止

通过使用AJAX技术,两个单独的POST请求将在不离开页面的情况下发出

解释如何实现此目标

UPD:很抱歉,只是关注了这个问题,忽略了您希望在每个表单提交时下载文件的事实。使用javascript是不可能的(不是在所有浏览器中)

在旧IE浏览器中也可以使用2个iFrame,每个iFrame包含一个表单:

<iframe src="firstFormPage.html"></iframe>
<iframe src="secondFormPage.html"></iframe>

这种方法允许您在iFrame中进行表单提交,而不会导致主页重新加载

UPD2:要修改iFrame内的表单字段:

<iframe id="form1" src="form1.html" frameborder="0"></iframe>
<iframe id="form2" src="form2.html" frameborder="0"></iframe><br/>
<input id="editForms" type="button" value="Edit Forms"/>

<script>
    $('#editForms').click(function(){
        $('#form1').contents().find('#input').val("Modifed in frame 1");
        $('#form2').contents().find('#input').val("Modifed in frame 2");
    });
</script>


$(“#编辑表单”)。单击(函数(){ $('#form1').contents().find('#input').val(“在第1帧中修改”); $('#form2').contents().find('#input').val(“在第2帧中修改”); });

让表单返回一个包含两个隐藏iFrame的页面。这些iFrame中的每一个都指向下载其中一个文件的脚本。这不起作用-当请求成功时,响应(
output\u form\u data
)不是打印到文件中,而是被困在AJAX
success
回调函数中。您是否有一个代码示例明确演示了如何让Perl脚本将数据打印到文件中,而不是将数据发送到AJAX响应处理程序?谢谢您的后续介绍。我的项目需要支持所有现代网络浏览器。更新的解决方案应该适用于大多数浏览器。我的意思是,旧浏览器可能不支持使用javascript提供文件,iFrame仍然可以。
<iframe src="firstFormPage.html"></iframe>
<iframe src="secondFormPage.html"></iframe>
<iframe id="form1" src="form1.html" frameborder="0"></iframe>
<iframe id="form2" src="form2.html" frameborder="0"></iframe><br/>
<input id="editForms" type="button" value="Edit Forms"/>

<script>
    $('#editForms').click(function(){
        $('#form1').contents().find('#input').val("Modifed in frame 1");
        $('#form2').contents().find('#input').val("Modifed in frame 2");
    });
</script>