如何通过jquery对象组合两个表单数据

时间:2016-10-20 09:00:11

标签: jquery ajax

我有两个数据表单,我正在尝试合并这些数据以便发送到我的Api。单个表单数据正在发送,但我不知道如何合并两个表单中的数据并发送到我的api。

$(document).ready(function () {
    $("#place_order").click(function () {
        var person2 = new Object();
        person2.Title = $('#Title').val();
        person2.FirstName = $('#FirstName').val();
        person2.LastName = $('#LastName').val();

        debugger;
        /* #check1 is form id , for first form , please let me know how two use second form id #check2 */
        var person = $('#check1').serialize();

        $.ajax({
            url: 'http://192.168.1.102:1512/qlikapi/RegisterUser',
            type: 'Post',
            data: person,
            success: function(data, textStatus, xhr) {
                alert(data.ErrorMessage);
                if (data.Success) {
                    document.location.reload();  
                }
            },
            error: function (xhr, textStatus, errorThrown) {
                console.log('Error in Operation');
            }
        });
    });
});

3 个答案:

答案 0 :(得分:2)

$(document).ready(function () {
    $("#place_order").click(function () {
        var person2 = new Object();
        person2.Title = $('#Title').val();
        person2.FirstName = $('#FirstName').val();
        person2.LastName = $('#LastName').val();

        debugger;
        /* #check1 is form id , for first form , please let me know how two use second form id #check2 */
        var person = {};
        var person1 = {};

         $.map($('#check1').serializeArray(), function(n, i){
           person[n['name']] = n['value'];
         });

         $.map($('#check2').serializeArray(), function(n, i){
            person1[n['name']] = n['value'];
         });

        var mergedFormObj = $.extend({},person,person1);

        $.ajax({
            url: 'http://192.168.1.102:1512/qlikapi/RegisterUser',
            type: 'Post',
            data: mergedFormObj,
            success: function(data, textStatus, xhr) {
                alert(data.ErrorMessage);
                if (data.Success) {
                    document.location.reload();  
                }
            },
            error: function (xhr, textStatus, errorThrown) {
                console.log('Error in Operation');
            }
        });
    });
});    

确保两个对象属性都是唯一的。

答案 1 :(得分:1)

合并两个对象的工作方式如下:

var a = {someProp: "hi"};
var b = {someOtherProp: "sup?"};

var merged = $.extend({}, a, b);
//Merged will be
{   someProp: "hi",
    someOtherProp: "'sup?"
}

在成功回调中重新加载页面并不是$.ajax调用的目的......

答案 2 :(得分:1)

如果您对表格更具体,请使用

$('#detailsform,#levelForm').serialize();

上面的行将返回一个字符串值。比如customId=08071992&cort=01&empId=7777

您可以通过将属性disabled="disabled"添加到输入字段来避免不需要的字段。

如果您没有第二张表格,可以使用FormData创建。

我希望这会对你有所帮助。