JQuery .each 处理之前 Ajax
JQuery .each processing before Ajax
我有一个 Javascript (Jquery) 函数,它迭代表单中的输入元素,将数组组装成 JSON 字符串,然后将其发布到 AJAX端点。 each 在 AJAX 调用之后是 运行,我不确定在 each 之后调用 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 调用放在每个函数的第一个函数之后,但这不起作用。
感谢指点
您需要将 var data = []
更改为 var data = {}
。
在每个循环中,您将属性添加到一个数组,JSON.stringify
没有接受。
我有一个 Javascript (Jquery) 函数,它迭代表单中的输入元素,将数组组装成 JSON 字符串,然后将其发布到 AJAX端点。 each 在 AJAX 调用之后是 运行,我不确定在 each 之后调用 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 调用放在每个函数的第一个函数之后,但这不起作用。
感谢指点
您需要将 var data = []
更改为 var data = {}
。
在每个循环中,您将属性添加到一个数组,JSON.stringify
没有接受。