jquery动态生成表单提交

我们有时候在提交一些参数的时候不想写隐藏表单时,我们可以使用jquery动态生成form
但是在动态生成表单时,不同浏览器兼容性是不一样的。

所以会遇到一些问题,可能你在chrome上能够运行,但是IE上不一定能够运行,我今天遇到的问题就是我做一个导出Excel需要带参数的跳转,window.location.href的方式满足不了我的需求,所有就用到了动态生成form
使用jquery生成form很简单
下面是一段简单的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
var result = $('#printDIV').html();
var xlsName = "excel文件";
var url = "exportExcel/export";
var form = $("<form></form>");
form.attr("action", url);
form.attr("method", "post");
form.append("<textarea name='result'>"+result+"</textarea>");
form.append("<textarea name='xlsName'>"+ xlsName +"</textarea>");
// ie8 必须要使用 appendTo("body") 经过测试
// chrome 35.0 版本是可以不需要 appendTo("body")
form.appendTo("body").submit();
// 渲染成功后移除表单form,否则页面中会出现表单
form.remove();

解决办法就是加上appendTo(“body”);