jQuery序列化form表单数据为JSON对象的实现方法
2018-09-20 16:05
1551 查看
jquery提供的serialize方法能够实现。
$("#searchForm").serialize();
但是,观察输出的信息,发现serialize()方法做的是将表单中的数据以htpp请求格式拼接成字符串。
serialize确实是能够解决一般的提交数据。但是有时我们需要的是一个object对象,而不是字符串(比如jqgrid reload时设置查询条件参数,就需要object对象)。
方法如下:
(function(window, $) { $.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; }; })(window, jQuery);
调用:
console.info($("#searchForm").serializeJson());
下面通过一段代码看下jQuery序列化表单为JSON对象
<form id="myform"> <table> <tr> <td>姓名:</td> <td> <input type="text" name="name" /> </td> </tr> <tr> <td>性别:</td> <td> <input type="radio" name="sex" value="1"> 男 <input type="radio" name="sex" value="0"> 女 </td> </tr> <tr> <td>年龄:</td> <td> <select name="age"> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> </select> </td> </tr> <tr> <td>爱好</td> <td> <input type="checkbox" value="basketball" name="hobby">篮球 <input type="checkbox" value="volleyball" name="hobby">排球 <input type="checkbox" value="football" name="hobby">足球 <input type="checkbox" value="earth" name="hobby">地球 </td> </tr> <tr> <td colspan="2"> <input type="button" id="ajaxBtn" value="提交" /> </td> </tr> </table> </form> <script type="text/javascript"> $(function() { $("#ajaxBtn").click(function() { var params = $("#myform").serializeObject(); //将表单序列化为JSON对象 console.info(params); }) }) $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name]) { if (!o[this.name].push) { o[this.name] = [ o[this.name] ]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; } </script>
上述serializeObject方法是将form序列化为JSON对象
总结
以上所述是小编给大家介绍的jQuery序列化form表单数据为JSON对象的实现方法 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
相关文章推荐
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- jQuery实现form表单元素序列化为json对象的方法
- jQuery实现form表单元素序列化为json对象的方法
- Jquery如何序列化form表单数据为JSON对象
- 将form表单里的数据封装成对象 json2.js的例子 jquery的serialize方法转换空格为+号的解决方法
- jQuery实现form表单序列化转换为json对象功能示例
- Jquery --- 将表单form数据序列化成json对象
- jquery序列化form表单使用ajax提交后处理返回的json数据
- jQuery form表单序列化为JSON对象!
- jQuery serializeObject 序列化form表单Json对象 jQuery.extend()合并对象
- form表单数据封装成json格式并提交给服务器的实现方法
- form表单序列化后的数据转json对象
- 关于jQuery使用serializeArray()序列化表单数据,使用FormData()实现AJAX请求的问题
- jquery序列化form表单使用ajax提交后处理返回的json数据
- ######保存角色,add表单页面Ajax传参给action,多个集合属性,【较为复杂的页面传参(封装ajax json参数)】:注意表单数据序列化,jquery遍历,json对象转String
- 【jQuery】form表单元素序列化为json对象
- jQuery serializeObject 序列化form表单Json对象 jQuery.extend()合并对象
- 在easyUI中把form表单转换成json数据利用datagrid的load方法实现条件查询
- android利用httpclient实现post、get请求restful接口进行json和form表单数据提交等公共方法类
- jQuery扩展 form表单数据json序列化