给ajax表单提交数据前面加上实体名称
有时候我们后台做了一个引用类型例如:
下面的实体以C#为例
public class Order{
public string orderId{get;set;}
public OrderItem orderItem{get;set;}
}
public class OrderItem{
public string productName{get;set;}
public decimal price{get;set;}
}
前台页面的html结构:
<form id="form1">
<input type="text" name="productName" value="milk" />
<input type="text" name="price" value="1.43" />
<input type="submit" name="submit" value="submit" />
</form>
后台在获取OrderItem的时候我们期望提交的数据格式是
{orderItem.productName:"",orderItem.price:""}
首先我们先回收表单的数据这里给一jquery的插件
;(function ($) {
$.fn.serializeJson = function () {
var serializeObj = {}
var array = this.serializeArray()
var str = this.serialize()
$(array).each(function () {
if (serializeObj[this.name]) {
if ($.isArray(serializeObj[this.name])) {
serializeObj[this.name].push(this.value)
} else {
serializeObj[this.name] = [serializeObj[this.name], this.value]
}
} else {
serializeObj[this.name] = this.value
}
})
return serializeObj
}
})(jQuery);
var formParam=$("#form1").serializeJson();
console.log(JSON.stringify(formParam))
控制台输出{"orderItem":{"productName":"milk","price":"1.45"}}
然后我们思考 orderItem.productName 肯定是对象的子对象才能用.操作符
例如{"UserInfo":{"clsName":"one","name":"li yang"}} 访问UserInfo的name属性就可以用UserInfo.name
好了得到了解决思路了
var formParam=$("#form1").serializeJson();
console.log(JSON.stringify(formParam))
console.log($.param(formParam))
控制台输出:
{"orderItem":{"productName":"milk","price":1.43}}
orderItem%5BproductName%5D=milk&orderItem%5Bprice%5D=1.43
如果您有更好的解决方法欢迎留言讨论或者加入下面的QQ群来交流讨论
技术交流QQ群:15129679
给ajax表单提交数据前面加上实体名称的更多相关文章
- 使用bean接收ajax表单提交数据包含文件上传
这几天写带图片上传的表单提交,一个配置小程序活动弹出框样式的功能,记录一下一些需要注意的地方 首先是 前端 JSP 文件的表单 <form class="search-wrapper& ...
- Ajax表单提交插件jquery form
jQuery Form插件是一个优秀的Ajax表单插件,我们可以非常容易的使用它处理表单控件的值,清空和复位表单控件,附件上传,以及完成Ajax表单提交. jQuery Form有两个核心方法ajax ...
- <记录> axios 模拟表单提交数据
ajax 可以通过 FormData 对象模拟表单提交数据 第一种方式:自定义FormData信息 //创建formData对象 var formData = new FormData(); //添加 ...
- ASP.NET MVC 表单提交多层子级实体集合数据到控制器中
于遇到了项目中实体类嵌套多层子级实体集合,并且子级实体集合的数据需要提交保存到数据库中的问题.针对此情况需要进行一些特殊的处理才可以将整个 实体类及子级实体集合数据提交表单到控制器中,解决的方法是根据 ...
- from表单提交数据之后,后台对象接受不到值
如果SSH框架下,前段页面通过from表单提交数据之后,在后台对象显示空值,也就是接收不到值得情况下.首先保证前段输入框有值,这个可以在提交的时候用jQuery的id或者name选择器alert弹出测 ...
- Struts2 03---数据封装+获取表单提交数据
Struts的数据封装分为三种:属性封装,模型驱动,表达式封装.下面以获取表单提交数据来简单介绍一下Struts的数据封装. <form action="loginlogin. ...
- js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题
js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题 js模拟form表单提交数据源码: /** * js模拟form表单提交 * @param ...
- 在Action中获取表单提交数据
-----------------siwuxie095 在 Action 中获取表单提交数据 1.之前的 Web 阶段是提交表单到 Servlet,在其中使用 Request 对象 的方法获取数据 2 ...
- Struts2_day02--Action获取表单提交数据
Action获取表单提交数据 1 之前web阶段,提交表单到servlet里面,在servlet里面使用request对象里面的方法获取,getParameter,getParameterMap 2 ...
随机推荐
- ICO如此疯狂为哪般?
编者语: 独角兽一词起源于硅谷,是投资行业,尤其是风险投资业的术语,指的是那些估值超过十亿美元的创业公司.独角兽凤毛麟角,占创业公司总数的0.1%都不到.鑫根资本认为,一个独角兽能达到如此估值,肯定是 ...
- C# WINFORM的自动更新程序
自动更新程序AutoUpdate.exe https://git.oschina.net/victor596jm/AutoUpdate.git 1.获取源码 http://git.oschina.ne ...
- 收集的MySQL的面试题分享给大家
1.怎样登陆mysql数据库 mysql -u username -p 2.怎样开启/关闭mysql服务 service mysql start/stop 3.查看mysql的状态 service m ...
- effective C++ 读书笔记 条款08
条款08 别让异常逃离析构函数: 假设在析构函数其中发生了异常,程序可能会过早结束或者导致不明白行为(异常从析构函数传播出去) 看代码: #include <iostream> usin ...
- Complete uninstall on Mac, HELP!
Remove these directories: /Applications/Xamarin Studio.app /Developer/MonoTouch /Developer/MonoAndro ...
- 基于设备树的TQ2440 DMA学习(1)—— 芯片手册
作者 彭东林pengdonglin137@163.com 平台 TQ2440内核Linux4.9 概述 一直想抽时间学习一下DMA驱动,今天就以S3C2440为例,这款芯片的DMA控制器足够简单,也比 ...
- 在ASP.NET MVC实现购物车,尝试一种不同于平常的购物车显示方式
通常,我们看到的购物车是这样的: 虽然这种购物车显示方式被广泛运用,但我个人觉得不够直观.如果换成这样呢? 本篇的源码放在了:https://github.com/darrenji/ShoppingC ...
- java数据结构 栈stack
栈(Stack) 栈(Stack)实现了一个后进先出(LIFO)的数据结构. 你可以把栈理解为对象的垂直分布的栈,当你添加一个新元素时,就将新元素放在其他元素的顶部. 当你从栈中取元素的时候,就从栈顶 ...
- C#编程(三十三)----------Array类
Array类 创建数组 Array intArray1 = Array.CreateInstance(typeof(int), 5); for (int i = 0; i < 5; i++) { ...
- iReport数据库连接找不到驱动