在开发中,需要单独提交一个表单,如文件下载:已知外部参数和提交地址,后端需要根据参数,整理数据,创建 Excel 文件并下载。
这里只介绍前端创建表单部分。
/**
* 创建表单并提交
* <p>.method 提交类型 post 或 get</p>
* <p>.url 提交地址</p>
* <p>.data 参数</p>
* @param param object 配置对象
*/
function createForm(param) {
param.method = 'method' in param ? param.method : 'post';
param.url = 'url' in param ? param.url : '?';
param.data = 'data' in param ? param.data : [];
let inputEle;
let formEle = $("<form style='display: none;' method='" + param.method + "'></form>");
formEle.attr({"action": param.url});
for (const x in param.data) {
inputEle = $("<input type='hidden'>").attr("name", x).val(param.data[x]);
formEle.append(inputEle);
}
$("body").append($(formEle));
formEle.submit();
formEle.remove();
}调用时:
createForm({
method: 'post',
url:'/test/url',
data:{
param1: 1,
param2:2
},
});这样,在创建隐藏表单后,会自动提交这个表单到指定地址,而后会删除创建的表单。