Ajax之前的JQuery .each处理

问题描述 投票:0回答:1

我有一个Javascript(Jquery)函数,该函数遍历表单中的输入元素,将数组严格地组装为JSON,然后将其发布到AJAX端点。每个都在AJAX调用之后运行,并且我不确定在每个之后调用AJAX端点的最可接受的方法是什么。

我的功能:

function FormHandler() {
    var data = [];
    $("form#myForm :input").each(function () {
        var input = $(this);
        var field_key = input[0]['name'].substr(4);
        var value = input[0]['value'];
        data[field_key] = value;
        console.log(data);
    });
    $.ajax({
        dataType: "json",
        url: 'https://myendpoint.xxx/v1/' + pathname,
        type: 'POST',
        data: {'data': JSON.stringify(data)},
        success: function (thisdata) {
            console.log(thisdata);
        }
    });
};

调用此AJAX会以JSON发送一个空数据数组,但是控制台登录到foreach中,显示该数据元素每转一圈都随着下一个输入值的增加而增长。我尝试将AJAX调用放置在每个函数的第一个函数之后,但这是行不通的。

感谢指针。

javascript jquery ajax each synchronous
1个回答
0
投票

您需要将var data = []更改为var data = {}。在每个循环中,您要向数组添加属性,JSON.stringify不会出现。

© www.soinside.com 2019 - 2024. All rights reserved.