有时候我们后台做了一个引用类型例如:

下面的实体以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表单提交数据前面加上实体名称的更多相关文章

  1. 使用bean接收ajax表单提交数据包含文件上传

    这几天写带图片上传的表单提交,一个配置小程序活动弹出框样式的功能,记录一下一些需要注意的地方 首先是 前端 JSP 文件的表单 <form class="search-wrapper& ...

  2. Ajax表单提交插件jquery form

    jQuery Form插件是一个优秀的Ajax表单插件,我们可以非常容易的使用它处理表单控件的值,清空和复位表单控件,附件上传,以及完成Ajax表单提交. jQuery Form有两个核心方法ajax ...

  3. <记录> axios 模拟表单提交数据

    ajax 可以通过 FormData 对象模拟表单提交数据 第一种方式:自定义FormData信息 //创建formData对象 var formData = new FormData(); //添加 ...

  4. ASP.NET MVC 表单提交多层子级实体集合数据到控制器中

    于遇到了项目中实体类嵌套多层子级实体集合,并且子级实体集合的数据需要提交保存到数据库中的问题.针对此情况需要进行一些特殊的处理才可以将整个 实体类及子级实体集合数据提交表单到控制器中,解决的方法是根据 ...

  5. from表单提交数据之后,后台对象接受不到值

    如果SSH框架下,前段页面通过from表单提交数据之后,在后台对象显示空值,也就是接收不到值得情况下.首先保证前段输入框有值,这个可以在提交的时候用jQuery的id或者name选择器alert弹出测 ...

  6. Struts2 03---数据封装+获取表单提交数据

        Struts的数据封装分为三种:属性封装,模型驱动,表达式封装.下面以获取表单提交数据来简单介绍一下Struts的数据封装. <form action="loginlogin. ...

  7. js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题

    js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题 js模拟form表单提交数据源码: /** * js模拟form表单提交 * @param ...

  8. 在Action中获取表单提交数据

    -----------------siwuxie095 在 Action 中获取表单提交数据 1.之前的 Web 阶段是提交表单到 Servlet,在其中使用 Request 对象 的方法获取数据 2 ...

  9. Struts2_day02--Action获取表单提交数据

    Action获取表单提交数据 1 之前web阶段,提交表单到servlet里面,在servlet里面使用request对象里面的方法获取,getParameter,getParameterMap 2 ...

随机推荐

  1. MSDN WinUSB Example

    The WinUSB user-mode library uses device interface classes to communicate with the kernel-mode USB s ...

  2. 使用IProgress实现异步编程的进程通知

    在异步编程中,有时候希望把进度展示出来,借助IProgress<in T>可以实现. IProgress<in T>只提供了一个方法void Report(T value),通 ...

  3. IOS开发中的CGFloat、CGPoint、CGSize和CGRect

    IOS开发中的CGFloat.CGPoint.CGSize和CGRect http://developer.apple.com/library/ios/#documentation/GraphicsI ...

  4. ios7下UISearchBar UITextField 光标不出现的问题

    app支持ios7,在UINavBar 里面加入搜索框,结果光标一直出现不了.在overstackflow网站搜索了一下,竟然有人遇到相同的问题.... 解决办法如下: searchBar.tintC ...

  5. Struts2标签的<s:set>标签与JSTL的<c:set>标签

    <s:set>标签 set标签 用于将某个值放入指定范围内.例如application.session范围等. 当某个值所在的对象图深度非常深时,例如如下:person.worker.wi ...

  6. WordPress主题开发:WP_Query基本用法

    为什么要学WP_Query? wordpress默认会根据网址调用数据,不能满足我们所有建站要求,而WP_Query可以用于查询任何你想要的内容,相当于自定义数据调用. 便于记忆,在讲用法之前我们回顾 ...

  7. 架构:Hexagonal Architecture Guidelines for Rails(转载)

    原文地址:http://theaudaciouscodeexperiment.com/blog/2014/03/17/hexagonal-architecture-guidelines-for-rai ...

  8. java.util.Vector排序

    Vector的排序: import java.util.*; class MyCompare implements Comparator //实现Comparator,定义自己的比较方法{public ...

  9. 神盾局特工第一季/全集Agents Of SHIELD迅雷下载

    神盾局特工 Agents of S.H.I.E.L.D. (2013) 本季看点:如果你熟悉Marvel漫画或者看过创造电影票房记录的<复仇者联盟>(The Avengers),你应该对「 ...

  10. ios之快速领会VFL的demo

    在网上看到一篇blog,超正!快速领会ios的vfl.  这里贴上blog的地址. http://www.thinkandbuild.it/learn-to-love-auto-layout-prog ...