jQuery序列化form表单数据为JSON对象的实现方法
程序员文章站
2023-11-19 12:58:58
jquery提供的serialize方法能够实现。
$("#searchform").serialize();
但是,观察输出的信息,发现serialize...
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对象的实现方法
-
序列化表单为json对象,datagrid带额外参提交一次查询 后台用Spring data JPA 实现带条件的分页查询 多表关联查询
-
Jquery如何序列化form表单数据为JSON对象
-
form表单数据封装成json格式并提交给服务器的实现方法
-
jQuery实现form表单序列化转换为json对象功能示例
-
jQuery序列化form表单数据为JSON对象的实现方法
-
jquery序列化form表单使用ajax提交后处理返回的json数据
-
序列化表单为json对象,datagrid带额外参提交一次查询 后台用Spring data JPA 实现带条件的分页查询 多表关联查询
-
Jquery如何序列化form表单数据为JSON对象
-
jQuery扩展方法实现Form表单与Json互相转换的实例代码