2017-07-06 15 views
-1

私は私の特定の問題を抱えています。 データがajaxを使用している場合はfalseを返すようにします。 は、ここに私のコードです:Ajaxが非同期呼び出しで状況を呼び出す

<script> 
    function verifydom(form) 
     { 
      var domnam = form.domname.value;    
      if (domnam == "") 
      { 
       alert("Please enter the Domain Name"); 
        form.domname.focus(); 
        return false; 
      }    
      else if(domnam.indexOf('.gov.in') <= 0){ 
       alert("Please enter valid domain name"); 
        form.domname.focus(); 
        return false; 
      } 
      else{     
       $.ajax({ 
        type: "get", 
        url: "calling.php", 
        data: "domnam="+domnam, 
        success: function(msg){ 
         if(msg!== ""){ 
          alert(msg); 
         } 
        } 
       }); 
       return false; 
      } 
      return true; 
     } 
    </script> 
    <form name="frmDelegate" action="dlgdetail.php" method="POST" 
    onsubmit="return verifydom(document.frmDelegate);" autocomplete="off"> 
    input type="text" name="domname" id= "domname" 
    onkeyup="showResult(this.value);"/>   <input type="hidden" 
    id="chkmsg" value=""/> 
    <input type="submit" value="Go" name="submit" /> 
    </form> 

「他の条件」の下でAJAX呼び出しは、いくつかのエラーメッセージを返すでしょう、だから、エラーが来れば、私がいない提出するフォームをしたいです。 問題は、「Elseは、Ajaxがメッセージを出すかどうかにかかわらず毎回動作します。 この状況をどのように克服できますか?

+0

Raviに感謝します。 :) –

答えて

0

空白のメッセージではなく、calling.phpファイルからJSONメッセージを返すことをお勧めします。

$arr = array("status" => "error", "message" => "error found"); 
echo json_encode($arr); 

これにより、エラーが存在するかどうかを簡単に確認することができます。 JSONにメッセージがある場合は、下記のコードで確認してください。

$.ajax({ 
    type: "get", 
    url: "calling.php", 
    data: "domnam="+domnam, 
    success: function(msg){ 
    var data = jQuery.parseJSON(msg); 
     if(data.status == "error"){ // no need to check strictly 
      return false; 
     } 
    } 
}); 
+0

同じ問題、リターンは、AJAX呼び出し内で動作しませんでした。 :( –

+0

リクエストに 'async:false'を追加してもう一度やり直してください –

関連する問題