jQuery form表单序列化为JSON对象!

/*
来源于博客园http://www.cnblogs.com/nixil/archive/2010/12/08/1900745.html
*/
function paramString2obj(serializedParams) {
    var obj = {};
    function evalThem(str) {
        var attributeName = str.split("=")[0];
        var attributeValue = str.split("=")[1];
        if (!attributeValue) {
            return;
        }

        //debugger;
        var array = attributeName.split(".");
        for (var i = 1; i < array.length; i++) {
            var tmpArray = Array();
            tmpArray.push("obj");
            for (var j = 0; j < i; j++) {
                tmpArray.push(array[j]);
            };
            var evalString = tmpArray.join(".");
            if (!eval(evalString)) {
                eval(evalString + "={};");
            }
        };    //以下对form表单中的checkbox多选操作进行更新,默认将多选的值以逗号进行分割,避免后台取值时,只取到一个选中的值
        var oldValue = eval("obj." + attributeName + ";");
        if (oldValue) {
            eval("obj." + attributeName + "=‘" + oldValue + "," + attributeValue + "‘;")
        } else {
            eval("obj." + attributeName + "=‘" + attributeValue + "‘;");
        }
    };

    var properties = serializedParams.split("&");
    for (var i = 0; i < properties.length; i++) {
        evalThem(properties[i]);
    };

    return obj;
}

$.fn.form2json = function () {
    var serializedParams = this.serialize();
    //console.log(serializedParams)
    var obj = paramString2obj(serializedParams);
    var str = decodeURIComponent(JSON.stringify(obj))
    return $.parseJSON(str);
}
//$.fn.form2json = function () {
//    var serializedParams = this.serialize();
//    var obj = paramString2obj(serializedParams);
//    return JSON.stringify(obj);
//}
时间: 2024-12-21 16:13:54

jQuery form表单序列化为JSON对象!的相关文章

Jquery 将表单序列化为Json对象

使用下面代码时注意不要忘记引入jquery文件,以下代码可以复制到html文件中执行可看到效果,非常方便好用.附代码: <!DOCTYPE html> <html> <head> <title></title> <script src="jquery-2.0.3.min.js"> </script> </head> <body> <form id="myForm&

form表单序列化为json格式数据

在web开发过程中,经常遇到将form序列化不能格式的字符串提交到后台,下面就介绍怎样将form表单序列化为json字符串. 首先,是扩展的jquery序列化插件,依赖jquery.经测试,这段代码可以放在$(funciton(){})中,也可以放在外面,都可以实现效果. $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.

将表单序列化为json对象

$.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); }e

FORM表单序列化为JONS数组后,修改其中的值

//序列化Form表单内容为JSON数组    //    var filterFormData = $(".filter .active form").serializeArray();    //    //alert(JSON.stringify(filterFormData));    //    //修改表单值    //    for (var i = 0; i < filterFormData.length; i++) {    //        var cur_

form表单序列化为Jquery对象

1 <form id="DailyFinancial" > @*class="form-inline"*@ 2 <div class="form-group"> 3 <label for="FinancialType">记账类型</label> 4 <select class="form-control" id="FinancialType&q

jQuery实现form表单序列化转换为json对象功能示例

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>jquery form序列化转换为json对象</title> <script src="//cdn.bootcss.com/jquery/3.0.0/jquery.min.js"></script> </script> </hea

jquery扩展方法(表单数据格式化为json对象)

<script type="text/javascript"> // 将表单数据序列化为一个json对象,例如 {"name":"zs", "age":10} // 使用:var jsonObj = $("#formId").serializeObject(); $.fn.serializeObject = function() { var o = {}; var a = this.serial

表单序列化为Json(只限input)

转载自:http://blog.csdn.net/itmyhome1990/article/details/42099885 <%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ include file="/WEB-INF/jsp/common.jsp"%><!DO

jquery将form表单序列化常json

var formData = {};$.each(form.serializeArray(),function(i, item){ formData[item.name] = item.value;}); $.ajax({ cache: true, type: "POST", url:ajaxCallUrl, data:$('#yourformid').serialize(),// 你的formid async: false, error: function(request) { al