之前使用jquery Ajax时经常碰到需要调用ajax里成功返回后的值,可是总是拿不到。原来就是ajax默认情况下是异步请求,没有等取到success里的值就开始取值了当然取不到我们想要的结果。只需要配置参数async:false即可,也就是让ajax同步执行,success里执行完之后再去执行后面的js 语句取值。
function getMsg(val){ var msg="该公司名已被占用"; var post="name="+val; post=encodeURI(post); post=encodeURI(post); $.ajax({ type: "POST", url: "${basePath}comm/ajax.do?method=tryCompanyName", cache: false, async:false, data: post, dataType:'json', success:function(data){ if(data=="1"){ msg=true; } } }); return msg; }