2017-04-04 100 views
0

我運行一個Ajax請求,那麼一旦我得到的結果後,我選擇它是否應該繼續,或者如果形式不應該提交。我正在檢查電子郵件是否存在。Ajax調用函數返回false不能正常工作

問題是我將success:中的返回錯誤移出,因爲它不在那裏工作,現在在一個單獨的函數中它也不起作用。我得到了alert("FALSE");但形式仍然提交這是沒有好,因爲我想一個錯誤彈出的情況發生。

$.ajax({ 
    type: "POST", 
    url: "/ajax/checkdata.php", 
    data: "email="+email, 
    success: function(data){ 
    var returned = true; 
    if (data == "Email Exists") { 
     returned = false; 
    } else { 
    } 
    emailModal(returned); 
    } 
}) 

function emailModal(result){ 
    if (result) { 
    alert("TRUE"); 
    } else { 
    alert("FALSE"); 
    return false; 
    } 
} 
+1

電話是異步,爲時已晚,在這一點上的東西返回到窗體 – adeneo

+0

所以我怎麼能做到這一點的異步:假似乎並沒有發揮作用之前 –

+0

要清楚,你的要求是,你想在提交表單時執行AJAX請求,並確定請求的結果rmines是否允許提交提交 - 是否正確? –

回答

3

你不得不總是防止從形式提交,然後在檢查電子郵件弄明白閹顯示錯誤或使用本地提交處理

$('form').on('submit', function(e) { 
    e.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url: "/ajax/checkdata.php", 
     data: {email : email}, 
     context: this 
    }).done(function(data) { 
     if (data == "Email Exists") { 
      alert(data); 
     } else { 
      this.submit(); 
     } 
    }); 
}); 
提交表單
+0

神奇的作品一種享受!將盡快回答! –

+0

不客氣! – adeneo