如果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'迭代?他們目前正在異步執行,所以他們可能都被髮送之前,第一個返回 – harmic
@PeterMader我有一個for循環,但發現每個工作好一點 – Tfish