博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【前端】 form.get 方式上传对象数组给后台
阅读量:6715 次
发布时间:2019-06-25

本文共 1345 字,大约阅读时间需要 4 分钟。

Jquery get 数组

  1. 起因:为了导出文件,使用 form 格式
  2. 使用 form 上传参数,下载文件,就会出现 obj 对象在参数里显示为 [object object] 或者 object
  3. 解决方案
                              复制代码

当前端没有页面时,使用

var form = $("
");form.attr("style", "display:none");form.attr("target", "");form.attr("method", "get");form.attr("action", "url" );$("body").append(form);form.submit();复制代码

来模拟生成一个 form 表单进行提交; 其中参数使用:

for(var key in params) {    var input1 = $("");    // 用于屏蔽对象    // 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);}复制代码

针对 对象数组 的提交,使用

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 的一样效果。

补充

在 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;    }  }}复制代码

转载地址:http://gtelo.baihongyu.com/

你可能感兴趣的文章
DataSource的可配参数有哪些,有哪些DataSource可以用
查看>>
本地文件共享服务(nfs samba ftp)
查看>>
scp通过代理proxy传输文件
查看>>
数据段、代码段、堆栈段、BSS段的区别
查看>>
WebService之Axis2快速入门(5): 管理会话(Session)
查看>>
以太坊RPC接口使用
查看>>
普通html标签<form>和struts2<s:form>的区别
查看>>
安装NTFS For Mac时显示文件已损坏怎么办
查看>>
-webkit-line-clamp实现多行文字溢出隐藏显示省略号
查看>>
配置sunspot tomcat结合sunspot_rails
查看>>
飞信系统4月29日升级后飞信机器人无法使用的解决办法
查看>>
Canonical今天宣布推出Plex Media Server作为Snap Store中的Snap应用程序
查看>>
Font Awesome
查看>>
Dubbo消费者
查看>>
虚拟化中虚拟机处理器核数与物理主机cpu的关系
查看>>
org.codehaus.jackson.map.JsonMappingException: No suitable constructor found for type
查看>>
MYSQL: mysqlbinlog读取二进制文件报错read_log_event()
查看>>
随机产生由特殊字符,大小写字母以及数字组成的字符串,且每种字符都至少出现一次...
查看>>
我的友情链接
查看>>
我的友情链接
查看>>