Skip to content

如何获取jquery中ajax事件的返回值

这两天的工作内容不多,基本是关于jquery中ajax的。之前一直都是写的最简单的ajax请求,并没关注怎么获取ajax返回值的问题,当然也没关注async这个参数的意义。

async是asynchronous[异步]的缩写,它是一个bool值默认为true。当async为true时,先不管ajax请求是否完成都要向下执行。同步请求要临时锁定浏览器,当请求正在执行时不执行任何动作。

描述下这两天要实现的功能,判断一个数据数据库里是否存在,如果存在就返回错误,不存在就可以填写并提交。代码如下:

javascript
isCompany :function(name){
    var flag = 0;
    if(name == '') {
        return  false;
    }else{
        $.ajax({
            type: "POST",
            url: '/checkCompany/name/' + name,
            cache: false,
            success: function(data){
                  return data > 0 ? false : true;
            }
         })
    }
}

通过上面的代码,一直无法正确的反应数据库里是否已经有了这个名字。通过下了个全局变量,将async(默认为true)异步改成同步,就顺利得到了ajax的返回值。代码如下

javascript
isCompany :function(name){
    var flag = 0;
    if(name == '') {
        return  false;
    }else{
        $.ajax({
           type: "POST",
           url: '/checkName/name/' + name,
           cache: false,
           async: false,
           success: function(data){
               flag = data;
           }
        })
    }
    return flag > 0 ? false : true;
}