跳到主要内容

jquery动态生成表单提交

· 阅读需 2 分钟
Apache王也道长
软件开发者与技术作者

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

动态表单适用于需要触发浏览器原生页面跳转或文件下载的场景。插入参数时应使用 DOM API 设置 value,避免直接拼接不可信 HTML 导致注入问题。

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

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");

本文阅读量:--

总访问量 -- · 访客数 --