0

重複の可能性:
関数からの AJAX 呼び出しからの応答を返す方法は?

メールIDとパスワードで登録ページを作成しています。common.js ファイルに記述されている checkData() 関数を呼び出す登録ページで onsubmit イベントを呼び出しました。メールIDがデータベースに存在するかどうかを確認するajax関数がありますか? しかし、私の問題は、ajax関数のチェックが完了した後にアラートメッセージを保持するときですが、アラートが削除されると、データベースにデータが入力されます。ここにajaxのコードがあります

   else
   {
       $(function() {

              $.ajax({
                    url  : 'RegCheck.php',
                    type : 'POST',
                    data : 'User=' + address,
                    success : function(result){
                       if(result != "No")
                       {
                           document.getElementById("EmailChk").innerHTML = result;    
                           Valid = false;

                       }
                    }

              });              


       });                         
      document.getElementById("MailMand").innerHTML = "" ;

   }    
   alert(Valid);
   return Valid;
4

1 に答える 1

1

ajaxはそのようには機能しません。コードはコードのに​​ 99.9% の確率でsuccess実行されます (100% の確率ではない場合)。がいつ呼び出されるかは保証できませんreturn Validsuccess

代わりに、コールバックですべての作業を行うajaxか、(身震いする) 同期させる必要があります。

したがって、検証のためにそれに依存している場合は、フォームの送信を停止してから、successメソッドでフォームを送信する必要があります。

于 2013-01-24T06:23:33.150 に答える