Ajax提交新表单,而不是提交值

时间:2011-07-21 15:54:09

标签: jquery .net asp.net forms

我有jQuery动态创建表单并将其添加到页面的末尾然后触发提交。

var downloadReportForm = $('<form id="report" action="ReportExcel.aspx" method="POST" />');
downloadReportForm.append(String.format('<input id="{0}" name="{0}" value="{1}" />', "customerGroupId", filter.CustomerGroupID));
$('form').after(downloadReportForm);
downloadReportForm.submit();

问题出在ReportExcel.aspx代码后面,我没有得到输入的值。我甚至没有看到它的关键。它根本就没有发布。

我已经尝试过GET和POST,我查看了Request对象的QueryString,Form和Params列表。什么都没有。

我不能使用$ .Post(),因为我需要响应回到这个页面,因为aspx返回一个excel内容类型,带有它的字节,我需要浏览器来打开下载对话框

我有什么建议可以让它发挥作用吗?

2 个答案:

答案 0 :(得分:0)

除非您编写了自己的方法,否则String.format在Javascript中不起作用。

试试这个

var downloadReportForm = $('<form id="report" action="ReportExcel.aspx" method="POST" />');
downloadReportForm.append('input', {id:"customerGroupId", name:"customerGroupId", value: filter.CustomerGroupID, type:"hidden"});
$('form').after(downloadReportForm);
downloadReportForm.submit();

答案 1 :(得分:0)

最好的方法是使用ajaxForm插件。访问http://malsup.com/jquery/form/ 有很多使用这个插件的例子。