Javascript jquery将表单参数集成到一个对象中

Javascript jquery将表单参数集成到一个对象中,javascript,jquery,ajax,Javascript,Jquery,Ajax,我的页面中有许多表单。我想将它们合并到一个对象中,并在一个对象中提交它们。但是我发现serializeArray()或serialize()与我的请求不匹配,serializeArray函数将生成一个数组对象,serialize由get model使用,它不是一个对象 是否有jquery或本地函数可以将它们合并到一个对象中 我有一个解决方案,但它并不完美,循环serializeArray生成的数组对象,使用$.extend将它们合并到一个对象中。有更好的方法吗 请帮忙,谢谢。我自己找到了解决方案

我的页面中有许多表单。我想将它们合并到一个对象中,并在一个对象中提交它们。但是我发现
serializeArray()
serialize()
与我的请求不匹配,serializeArray函数将生成一个数组对象,serialize由get model使用,它不是一个对象

是否有jquery或本地函数可以将它们合并到一个对象中

我有一个解决方案,但它并不完美,循环serializeArray生成的数组对象,使用
$.extend
将它们合并到一个对象中。有更好的方法吗


请帮忙,谢谢。

我自己找到了解决方案,我模仿序列化功能并创建了一个简单的插件。如果有任何缺陷,请指出,谢谢

(function($) {
$.fn.paramJson = function(a, traditional) {
    var prefix, s = [], add = function(key, value) {
        // If value is a function, invoke it and return its value
        value = $.isFunction(value) ? value() : (value == null ? ""
                : value);
        s[s.length] = "\"" + encodeURIComponent(key) + "\"" + ":" + "\""
                + encodeURIComponent(value) + "\"";
    };

    // Set traditional to true for jQuery <= 1.3.2 behavior.
    if (traditional === undefined) {
        traditional = $.ajaxSettings
                && $.ajaxSettings.traditional;
    }

    // If an array was passed in, assume that it is an array of form
    // elements.
    if ($.isArray(a) || (a.jquery && !$.isPlainObject(a))) {
        // Serialize the form elements
        $.each(a, function() {
            add(this.name, this.value);
        });

    } else {
        // If traditional, encode the "old" way (the way 1.3.2 or older
        // did it), otherwise encode params recursively.
        for (prefix in a) {
            buildParams(prefix, a[prefix], traditional, add);
        }
    }

    // Return the resulting serialization
    return "{" + s.join(",").replace(r20, "+") + "}";
};
$.fn.serializeJson = function() {
    return $.parseJSON($.paramJson( this.serializeArray()));
};      
(函数($){
$.fn.paramJson=函数(a,传统){
变量前缀,s=[],add=函数(键,值){
//如果value是函数,则调用它并返回其值
value=$.isFunction(value)?value():(value==null?“
:价值);
s[s.length]=“\”“+encodeURIComponent(键)+”\”“+:“+”\”
+encodeURIComponent(值)+“\”;
};

//对于jQuery,将traditional设置为true我认为这会使事情变得复杂…请检查这里,谢谢,但我认为这不是我想要的。结果将是一个匹配特定格式的字符串。那么你为什么需要一个对象呢?我的页面中有一个由我自己设计的插件,有许多jQuery.extend正在进行中,所以当ajax提交时我需要一个对象,我们正在加载数据:对象。