【JavaScript】前端⽤jsform上传对象数组
⽂章⽬录
Jquery get 数组
1. 起因:为了导出⽂件,使⽤ form 格式
cheerup>表格制作excel使⽤ form 上传参数,下载⽂件,就会出现 obj 对象在参数⾥显⽰为 [object object] 或者 object
2. 解决⽅案
<input type="text"name="username"aciton="..">
<input type="text"name="photo[0].id">
<input type="text"name="photo[0].name">
<input type="text"name="photo[1].id">
<input type="text"name="photo[1].name">
<input type="text"name="photo[2].id">
<input type="text"name="photo[2].name">
当前端没有页⾯时,使⽤
var form =$("<form>");
form.attr("style","display:none");
form.attr("target","");
form.attr("method","get");
form.attr("action","url");
dateadd是聚合函数$("body").append(form);
form.submit();
来模拟⽣成⼀个 form 表单进⾏提交;
其中参数使⽤:
for(var key in params){
var input1 =$("<input>");
// ⽤于屏蔽对象
// if(typeof params[key] == 'object') break;
input1.attr("type","hidden");
input1.attr("name", key);
// input1.attr("value", typeof regionAndTimeParams[key] == "object" ? JSON.stringify(regionAndTimeParams[key]) : regionAndTimeParams[key]);    input1.attr("value", temp[key]);
form.append(input1);
}
针对 对象数组 的提交,使⽤
jquery下载文件请求var temp ={};
if(typeof params[key]=='object'){
// 此处处理的是对象数组,对象⽐较简单
params.map(function(val, index){
for(var key_sub in val){
temp[ key +'['+ index +'].'+ key_sub]= val[key_sub];
}
})
// 不影响原来的 params
$.extend(temp, params);
}
据此,完成全部的替换,达到与前端写定 form 的⼀样效果。
补充 - JavaScript 中获取对象名
在 js 中,获取⼀个 obj 的对象名
模板网站大全// domain 为 obj 所在的域。可为全局,也可以为某个对象
function getObjName(obj, domain){
// obj 绑定在全局时适⽤
var domain = domain ||(typeof global =='undefined'? window : global); for(let name in domain){
if(domain[name]=== obj){
return name;flex布局靠左
}
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。