ajaxがエラーを返した場合、私は各ループから脱出することはできません。私は試しました
return false;
と他の同様のものが、まだ$ .eachはまだ実行しています。
私はバックエンドからエラーメッセージを表示できるようにする必要があります(これは悪い習慣ですが、クライアントは複数のフォームを送信できなければならないすぐに。)。
私は間違ったことを誰でも説明できますか?
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