テキストボックスのblur関数でjquerypostメソッドを呼び出すMVCアプリケーションがあります。問題は、フォームに多くの入力フィールドがあり、各入力フィールドで同じajaxメソッドをぼかして呼び出すことです。ユーザーが異なるテキストボックスを非常に速くクリックインおよびクリックアウトすると、ajaxメソッドは2回3回呼び出し、間違った結果になります。
これが例です
Flight 1
Airline Flight # Class Date
S1 TextBox1 TextBox2 TextBox3 TextBox4
S2 TextBox1 TextBox2 TextBox3 TextBox4
S3 TextBox1 TextBox2 TextBox3 TextBox4
私が疲れたこれに対する1つの解決策は、このようにajexを呼び出すときに提出されたすべての入力を無効にすることです
function Submit() {
$('input').attr("disabled", "disabled");
$.post("/ItineraryBuilder/GetFlightData", { opportunityId: oppID}, function (data)
{
$("#DivResult").html(data);
$('input').removeAttr("disabled");
}
}
これにより、すべての入力フィールドが無効になり、ユーザーがテキストボックスから頻繁に出入りするように制限されます。これにより、Ajaxpostが何度も呼び出されることはありません。ただし、入力フィールドが無効になるとすぐにフォーカスも失われ、この場合はTABの使用が困難になります。
それで、ajax呼び出しまたはコントローラー/アクションをしばらくロックダウンして、あるアクションが処理されるまで別のアクションが開始されないようにする方法、またはこれを行うための他のより良い方法はありますか?
私の主張を明確にしたいと思います。