【发布时间】:2018-01-14 12:01:10
【问题描述】:
如果 ajax 返回错误,我似乎无法摆脱我的每个循环。我试过了
return false;
和其他类似的东西,但 $.each 仍然继续运行。
我需要能够做到这一点,以便在通过 ajax 发布后从后端显示错误消息(我知道这是不好的做法,但是客户端需要能够发送多个表单一次。)。
谁能解释我做错了什么?
var postAll = function(button_clicked)
{
e.preventDefault();
var form_response = [];
var formsCollection = document.getElementsByTagName("form");
$.each(formsCollection, function (key, value)
{
console.log(value.action);
console.log(value.id);
var url = value.action;
var id = value.id;
var data = ($('#' + id + '').serialize());
if (id == 'additionalInfo')
{
data = {'Add_info': $('#Add_info').val(),};
}
if (id != 'DONE')
{
$.ajax({
type: "POST",
dataType: 'json',
url: url,
beforeSend: function (xhr)
{
xhr.setRequestHeader('X-CSRF-TOKEN',$("#token").attr('content'));
},
data: data,
success: function (data)
{
console.log('success'); // show response from the php script.
form_response.push(data); // show response from the php script.
},
error: function (data)
{
console.log('fail'); // show response from the php script.
display_errors(data, id); // show response from the php script.
return true;
}
});
}
});
}
【问题讨论】:
-
究竟是什么不正常?
-
您的意思是,如果任何请求失败,您想提前退出
each迭代吗?它们当前是异步执行的,因此它们可能都在第一个返回之前发送 -
@PeterMader 我在 for 循环中使用了它,但发现每个循环都更好
标签: javascript jquery ajax each