/ / jQueryはAJAXでフォームを検証する - jquery、ajax

jQueryはAJAXでフォームを検証します - jquery、ajax

利用可能な在庫を確認するためにAJAX呼び出しを使用してフォームを検証しようとしています。在庫確認にエラーがある場合はmsgを返し、そうでない場合はフォームを送信します。

私は次のコードを持っています:

$("form[id*="distributor_"]").submit(function(){
return checkAvailableInventory($(this));
});

function checkAvailableInventory(form) {
$.ajax({
url: "/ajax/quantity.php?" + form.serialize(),
success: function(msg) {
if (msg) {
alert(msg);
return false;
} else {
return true;
}
}
});
}

この問題はAJAXの非同期的な性質によるものであり、success:句はcheckAvailableInventory()ライフサイクルが完了した後も実行されないと思われます。

この問題を解決するための提案はありますか?タイムアウトを使用している人の例をいくつか見たことがありますが、それは問題を回避するための回避策のようです。

回答:

回答№1は2

1つの選択肢は、通話を非同期にすることです。あなたが設定することができます async 偽にしている。デフォルトではtrueです。通話が完了するまでブラウザがロックされる可能性があるため、通話がどのくらいの期間行われるのかわからない

編集: もう1つの選択肢は、ajax呼び出しを行うメソッドからfalseを返すことです。次に、成功メソッドがそこに到達したら、フォームから送信機能をアンバインドしてからform.submitを呼び出すだけで、検証なしで通常どおりに送信されます。


回答№2の場合は0

あなたはjQueryの検証プラグインをチェックアウトしたいかもしれません!使い方はとても簡単で、リモート検証を非常にうまく処理します。

プラグイン http://bassistance.de/jquery-plugins/jquery-plugin-validation/ リモート検証に関するドキュメント http://docs.jquery.com/Plugins/Validation/Methods/remote#options