Form表单参数序列化成Json对象:

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里面存在同名参数时,参考:https://blog.csdn.net/weixin_30418341/article/details/95396211

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐