如何让jquery/js代码在继续之前等待get?

如何让jquery/js代码在继续之前等待get?,jquery,get,wait,Jquery,Get,Wait,我有一个表单验证方法,在提交时调用。它执行“get”以验证其中一个字段,如果该字段无效,则返回false: $.get('validate.cfc', { method: 'validateUserID', userID: $('#userID').val(), returnformat: 'plain' }, function(data){ if($.trim(data) == 0){

我有一个表单验证方法,在提交时调用。它执行“get”以验证其中一个字段,如果该字段无效,则返回false:

$.get('validate.cfc', 
    {
        method: 'validateUserID',
        userID: $('#userID').val(),
        returnformat: 'plain'
    },
    function(data){
        if($.trim(data) == 0){
            alert('Invalid userID!');
            return false;
        }
    }
);
然后,它继续执行一些进一步的简单验证步骤(无需ajax调用)。例如:

if(!isDate($('#endDate').val()) && $('#endDate').val() != ""){
    alert("Please enter a valid end date");
    return false;
}
问题是,
get
执行时代码继续。因此,如果用户标识无效且结束日期不是日期,则首先会显示“请输入有效的结束日期”消息,然后显示“无效用户标识!”消息。我怎样才能让我的代码等到获取完成


(我能想到的唯一一件事是在get之后在函数中的所有其余代码周围放置一个小的setTimeOut…这不是最优雅的解决方案。)

将代码的第二部分放置在success函数中。

如果我正确,那么应该这样做:

$.get('validate.cfc', 
{
    method: 'validateUserID',
    userID: $('#userID').val(),
    returnformat: 'plain'
},
function(data){
    if($.trim(data) == 0){
        alert('Invalid userID!');
        return false;
    }else{
            if(!isDate($('#endDate').val()) && $('#endDate').val() != ""){
            alert("Please enter a valid end date");
            return false;

            }else{
                   submit the form
                 }
         }
 }
);

有一个异步属性要作为jQueryAjax请求的一部分发送,只需将其设置为false

虽然他们说在新版本中它已经被弃用了,但我以前使用过它,而且很有效。不确定新语法是什么。或者如果是


请看

我使用beforeSend做了类似的事情。我想这是最有意义的。。。不过,我想把验证的所有部分分开。