I am using jQuery 1.7 and I use async:false for my AJAX requets, but I've learned that this function is deprecated.
I need to use callback but this doesn't work:
$("#form").submit(function(e) {
var cnf;
$.ajax({
    type: "POST", 
    url: 'page.php', 
    data: $('#form').serialize(),
    async: true,
    success: function(responseText) { 
        if(responseText.indexOf('err') != -1) {
            cnf = "error";
        } 
        else {
            cnf = "success";
        }
        return callBack( cnf );
    }, 
    error: function() {
        cnf = "error";  
        return callBack( cnf ); 
    } 
});
if(cnf == "success")
{
   alert('ok');
}
});
The HTML:
<form id="form">
 <input type="text" name="email">
 <input type="submit">
</form>
If I use async: false this works. Using callBack I see the solution here: wait for a jquery ajax callback from calling function
 
     
     
    