A .each $() Je ne peux pas sembler réussir à sortir de ma chaque boucle si la ajax renvoie une erreur. J'ai essayéJe ne peux pas sembler sortir de la boucle
return false;
et autre chose similaire, mais le $. $ Continue encore à courir. Je dois pouvoir faire cela pour que je puisse afficher les messages d'erreur de mon backend après l'avoir posté via ajax (je sais que c'est une mauvaise pratique mais un client devait pouvoir envoyer plusieurs formulaires immediatement.).
Quelqu'un peut-il expliquer ce que je l'ai fait mal?
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;
}
});
}
});
}
Exactement ce ne fonctionne pas comme il se doit? –
Voulez-vous dire que vous voulez quitter l'itération 'each' tôt si l'une des demandes échoue? Ils sont actuellement exécutés de façon asynchrone afin qu'ils puissent tous être envoyés avant le premier retour – harmic
@PeterMader je l'avais dans une boucle mais a constaté que chacun a travaillé un peu mieux – Tfish