Form表单参数序列化成Json对象:
- 1. 使用serializeJsonObject
- 2. jquery.serializejson.min.js
1. 使用serializeJsonObject
在低版本的jQ中,可以使用serializeJsonObject,直接将form里面的参数序列化为Json对象。亲测2.2.3版本是可用的。
<script src="https://cdn.bootcss.com/jquery/2.2.3/jquery.min.js"></script>
var temp = $("#query_form").serializeJsonObject();
console.log(temp);
如果需要往对象里面添加额外的参数,可以使用:
temp["sortName"]= params.sortName
如果提示:Uncaught TypeError: $(...).serializeJsonObject is not a function
,那么应该可能是jQ版本过低或者过高的问题,引入的jQ里面未包含此函数。我这里另一个页面用了新版的jquery-3.5.1.min.js
,所以只能借用别的js来序列化了。
2. jquery.serializejson.min.js
高版本的jquery
结合 jquery.serializejson.min.js
使用。
官网:https://www.bootcdn.cn/jquery.serializeJSON/
3.1.0:https://cdn.bootcdn.net/ajax/libs/jquery.serializeJSON/3.1.0/jquery.serializejson.js
页面引入:
<script src="${ctx!}/common/plugins/jquery-3.5.1/jquery-3.5.1.min.js"></script>
<!-- from表单转为json -->
<script src="${ctx!}/common/plugins/jquery-serializejson/jquery.serializejson.js"></script>
注意引入顺序,因为jquery.serializejson.js
需要依赖jquery
,所以需要先引入jquery
。
var temp = $("#query_form").serializeJSON();//此时转为json对象,如需要可再转成字符串:var serializeStr=JSON.stringify(temp);
console.log(temp);
temp["sortName"]= params.sortName
form里面存在同名参数时,参考