当前位置 博文首页 > 快速解决ajax返回值给外部函数的问题

    快速解决ajax返回值给外部函数的问题

    作者:dreams_deng 时间:2021-08-25 19:05

    如下所示:

    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;
     }

    以上这篇快速解决ajax返回值给外部函数的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持站长博客。

    jsjbwy
    下一篇:没有了