序列化多个form表单内容同时提交

Posted 潇潇与偕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了序列化多个form表单内容同时提交相关的知识,希望对你有一定的参考价值。

 

一、首先将表单主体序列化为json对象。

     方法:

 //将表单序列化为json,这里加了个jQuery的扩展方法
    $.fn.serializeJson = function () {
        var result = {};
        var array = this.serializeArray();
        $(array).each(function () {
            if (result[this.name]) {
                if ($.isArray(result[this.name])) {
                    result[this.name].push(this.value);
                } else {
                    result[this.name] = [result[this.name], this.value];
                }
            } else {
                result[this.name] = this.value;
            }
        });
        return result;
    };

   使用方法为:var jsonData=$("#form").serializeJson();

二、序列化form数据

f.GetFormData = function (formId, dataFailed, jsonData) {
        var array = $("#" + formId).serializeArray();
        $(array).each(function (i, o) {
            var n = o.name, v = o.value;
            jsonData[dataFailed + "." + n] = v;
        });
        return jsonData;
    }

 


三、序列化grid数据

 

f.GetGridData = function (gridname, datafailed, jsondata) {

        var grid = $("#" + gridname);
        var addList = grid.datagrid("getChanges");
        $.each(addList, function (i, o) {
            o.InfoGroupName = gridname;
            for (var p in o) {
                jsondata[datafailed + "[" + i + "]." + p] = addList[i][p];
            }
        });
        return jsondata;
    }

 

 

以上是关于序列化多个form表单内容同时提交的主要内容,如果未能解决你的问题,请参考以下文章

js总结(11)一个页面同时提交多个form表单的实施

ajax()使用serialize()提交form表单

Jquery serialize()提交多个表单数据

一个页面提交多个表单

学习日记13ajax同时提交from表单和多个参数

ajax提交form表单问题