在做表单验证码功能的时候,思路是当验证码错误的时候,提示错误信息,同时return false,不执行post请求。验证码正确的时候执行post请求。

      var data="action="+$('#confirm-code').val();var flag;  //作为是否执行post请求的标记$.ajax({ type:"POST",data:data,url:"login/chk_code.php",dataType:'json',success:function(json) {   if (json.msg == '0') {alert('验证码错误');$('#getcode-num').attr("src","resource/code_num.php?"+Math.random());flag = 0;  //验证码错误标记为0}  else if (json.msg == '1') {alert("他妈的终于可以了");flag = 1;  //验证码正确标记为1}   }   }); if (flag == 0)  //如果标记为0,则不执行post请求return false;

问题来了,不管验证码正不正确,都不执行post请求,调试的时候发现,给标记flag赋值的语句并没有正确执行

原因在于,ajax默认是异步执行,也就是说当js执行到ajax语句的时候,并不会等待ajax执行完,而是继续执行下面的语句,而这个时候,flag的赋值语句还没有执行。

解决方法是,设置ajax为同步请求

      var data="action="+$('#confirm-code').val();var flag;$.ajax({ type:"POST",async:false,  //设置同步请求data:data,url:"login/chk_code.php",dataType:'json',success:function(json) {   if (json.msg == '0') {alert('验证码错误');$('#getcode-num').attr("src","resource/code_num.php?"+Math.random());flag = 0;  }  else if (json.msg == '1') {alert("他妈的终于可以了");flag = 1;}   }   }); if (flag == 0)return false;

ajax回调函数不能赋值相关推荐

  1. 关于Ajax回调函数内返回值无法给全局变量赋值的问题

    众所周知,Ajax从后端获得数据到回调函数,想要将获取的值赋给全局变量的话要将Ajax中的async改为false,使其同步,不然js在按顺序执行时等请求发出后就先去执行Ajax下面的代码了. var ...

  2. 对ajax回调函数的研究

    假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情 ...

  3. java如何构造ajax回调参数,jQuery实现ajax回调函数带入参数的方法示例

    本文实例讲述了jQuery实现ajax回调函数带入参数的方法.分享给大家供大家参考,具体如下: 不带参数的写法: function pass(htmlId,auditingFlag){ var url ...

  4. ajax回调函数有时成功有时失败,javascript - Ajax 回调函数行为随机。我做错了什么?...

    我有以下行为随机的 ajax 函数.有时会显示警报 success finally.在其他情况下,第二个警报是 显示 Failure: my status is 500. promptId 从调用函数 ...

  5. 解决ajax回调函数无返回值得问题

    解决ajax回调函数无返回值得问题 参考文章: (1)解决ajax回调函数无返回值得问题 (2)https://www.cnblogs.com/lzxlfly/p/5879167.html (3)ht ...

  6. jQuery AJAX回调函数this指向问题

    了解JavaScript的人都知道JavaScript的this不总是指向当前对象,函数或类中的this指向与调用这个函数的对象以及上下文环境是息息相关的.如在全局作用域调用一个含this的对象,此时 ...

  7. Ajax回调函数无反应及进erro问题记录。

    一:问题描述 ajax回调函数,明明后台返回成功了,前端一直进Erro 二:问题反思 1.前端知识体系认知的不够完善.一直做后端的我,总感觉ajax套用模版就好,普通的模版,只有success,没写e ...

  8. spring返回数据使用ajax,【spring 后台跳转前台】使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中...

    问题1: 使用ajax访问的后台,后台正常执行,并且正常返回数据,但是不能进入前台的ajax回调函数中 问题展示: 问题解决: 最后发现是因为后台的方法并未加注解:@ResponseBody,导致方法 ...

  9. JQuery Ajax 回调函数为全局变量赋值

    背景   如题,在使用Echarts的地图时,需要为图表填充数据.但是如果写在success的回调函数中,代码很长并且有大量重复,显然不是正确的打开方式.因此定义了一个外部变量,使用Ajax请求数据, ...

最新文章

  1. AC日记——任务查询系统 洛谷 P3168
  2. Sharepoint摸索之路
  3. java jpa @joincolumn 字段不为空_拥抱开源从表设计到 JPA 实现
  4. 使用 docker 编译运行 abp 项目
  5. TCP的定时器系列 — 零窗口探测定时器(有图有代码有真相!!!)
  6. svg标签的CSS3动画特效 - 经典特效2
  7. linux怎么查看服务器主频,Linux环境下查看服务器硬件信息
  8. RealityCapture照片建模
  9. 活动策划方案具体流程
  10. 例外被抛出且未被接住
  11. 2018南邮全国计算机大赛,我院承办2018全国大学生物联网设计竞赛(TI杯)南京邮电大学选拔赛...
  12. css vw vh ie9,css3中calc、vw、vh、vmin、vmax 属性的应用及兼容性详解
  13. 你好,CSDN,我来了。我想在这里记录我的学习和分享知识教程
  14. seata启动报错的一种处理方式 NO channal is available for resource [deduct]
  15. 中企海外周报 | 中国品牌闪耀亮相2019 IFA
  16. 2016.1云南之旅
  17. 奥斯卡大赢家影片:《瞬息全宇宙》背后的AI技术揭秘
  18. 吉尔布雷斯的动作研究—《可以量化…
  19. PHP实现页面静态化、纯静态化及伪静态化
  20. 用小毛桃破解Window7 64位旗舰版 Administrator密码

热门文章

  1. python字典的特点是什么_python字典特点
  2. 利用MFC绘制Excel数据的波形
  3. mysql 慢查询日志的设置与优化
  4. python暴力破解7z_7Z压缩包怎样解密?
  5. 重庆涪陵创新计算机职业学校文艺表演,“维护民族团结 共建无毒家园”——重庆市涪陵信息技术学校举行第九届校园十佳歌手大赛暨元旦文艺汇演...
  6. vue2.0项目搭建
  7. SQLsever查询结果,数据后面总是有很多空格
  8. 遗传算法入门:族群繁衍问题
  9. 徒手撸了一台智能无人机,网友:奥利给
  10. JDK1.8配置环境变量