快速解决ajax返回值给外部函数的问题
如下所示:
function validateUser(mya){ var val=mya.name; val = $.trim(val); var flag=true; if(val != ""){ var url1="${pageContext.request.contextPath}/group/getUserCount" var data1= {"gid":val, time:new Date()}; $.post(url,data1,function(data){ // 1 表示用户名为空,可以注册 if(data=="1"){ alert("不能删除,改组中有用"); flag=false; }else{ flag=true; } }) if(flag==0){ //没有有用户 return true; }else{ alert("改组中含有用户,不能删除"); return false; } } }
问题: $.post的回调函数是在一个闭包中,有自己的作用域,返回值对于外部的函数不起作用,
可以在外部定义全局变量flag,但是 $.post异步请求,提前返回了flag, flag永远的默认值,
解决方式: 使用$.ajax,把 异步请求设置为同步请求
其实 ajax功能非常强大,可以直接不用拼接json
$.ajax({ url:url1, async:false, data:data1, success:function(data){ flag=data; }
相关推荐
83510998 2020-07-18
时光如瑾雨微凉 2020-07-19
ppsurcao 2020-06-14
kentrl 2020-11-10
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo
ajaxyan 2020-11-09
zndy0 2020-11-03
学留痕 2020-09-20
Richardxx 2020-11-09
learningever 2020-09-19
chongxiaocheng 2020-08-16
ajaxhe 2020-08-16
lyqdanang 2020-08-16
curiousL 2020-08-03
TONIYH 2020-07-22
坚持着执着 2020-07-16
jiaguoquan00 2020-07-07
李永毅 2020-07-05