JQuery. Каждая обработка перед Ajax - PullRequest
0 голосов
/ 27 октября 2019

У меня есть функция 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 в функцию после каждой первой функции, но это не работает.

Спасибо за указатели.

1 Ответ

2 голосов
/ 27 октября 2019

Вам нужно изменить var data = [] на var data = {}. В каждом цикле вы добавляете свойства в массив, который JSON.stringify не учитывает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...