2014-01-20 137 views
0

在提交按鈕點擊,我打電話給一個API。如果它返回true,我想顯示錯誤消息並停止提交表單。 但是,如果它返回false,我想提交表單。提交/停止提交表單在Ajax成功調用

jQuery代碼:

$(document).ready(function() { 
    $('#submit').click(function() { 
     if ($('#EMail').val().length != 0) { 

      var email = $('#EMail').val(); 
      var url = "url"; 
      $.ajax({ 
       type: "GET", 
       url: url, 
       dataType: "xml", 
       success: function (responsedata) { 
        var result = $(responsedata).find("Exists").text(); 
        console.log(result); 
        if (result == 'false') { 
         $('#frmsignup').submit(); 

        } else { 
         //show error. 
         return false; 
        } 
       }, 
       complete: function() { 

       }, 
       error: function() { 

       } 
      }); 

     } else { 
      $('#frmsignup').submit(); 
     } 
    }); 
}); 

但問題是與上面的代碼甚至if (result == 'true'),表單被提交和錯誤顯示不出來。 我在做什麼錯?

+0

重新檢查該值形式的.submit() '$( '#EMail').val().length'和'alert(result);' –

回答

0

我認爲,你的問題是你檢查結果=='假',在這種情況下'假'是一個字符串,但不是布爾。

if (!result) { 
    $('#frmsignup').submit(); 
} else { 
    //show error 
    return false; 
} 
1

第一u必須停止的點擊提交事件提交按鈕

$('#submit').click(function (e) { 
    e.preventDefault(); 

則U可以調用每當ü要

+0

現在表單永遠不會被提交。我的意思是,如果結果=真,我看到錯誤信息。但如果結果= false,表單不會提交 – kandroid