在开发中,需要单独提交一个表单,如文件下载:已知外部参数和提交地址,后端需要根据参数,整理数据,创建 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 }, });
这样,在创建隐藏表单后,会自动提交这个表单到指定地址,而后会删除创建的表单。