私はあなたがこのようなものを持っていると言うのだろうか
// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.ajax({ url: "example.php" })
.success(function(response) { alert("success"); })
// perform other work here ...
// Set another success function for the request above
jqxhr.success(function(response){ alert("second success"); });
だから私はこう考えています。成功に渡されるすべての応答で使用したい一般的な関数があります。
この関数は基本的に、サーバーの検証でエラーが見つかったかどうかを確認するためのチェックを行います。実行された場合は、フォーマットしてメッセージを表示します。
今、特定のことを行うために2番目の成功関数をどのように持つことができるかどうか疑問に思っています。たとえば、1 つの ajax リクエストでテーブルに行を追加する必要があります。したがって、これは可能なはずです。上記のことを行うだけで、2回目の成功では行を追加するだけです。
最初の成功が実行され、サーバーからの検証エラーがあることがわかった場合、2 番目の成功が起こらないようにすることは可能ですか?
並べ替え
If(first success finds errors)
{
// print out errors
// don't continue onto next success
}
else
{
// go to next success
}
編集
deferred.rejectと呼ばれるものがあることがわかりましたが、これはそれを停止しますが、成功したものだけを停止するように指定するにはどうすればよいでしょうか。私の考えでは、完了のような他の延期されたものがある場合、それも拒否されますか?