为什么Jquery接收数据不能同步?

2020-07-13 11:06发布

function bb() { var bool = CheckEmail(); return bool;///第二部 } function CheckEmail() { var ReturnCheckEmail = false;//////第一步 var IsEmail = StringHelper.isEmail($("#TextBox1").val()); if (StringHelper.isEmail($("#TextBox1").val()) != true) { $("span").remove(".email"); $(".email").val(' '); $("#TextBox1").parent().append("*请输入正确的邮箱!"); ReturnCheckEmail = false; } else { $.post("Ajax/CheckInfo.ashx", { "CheckType": "MemberEmail", "CheckValue": $("#TextBox1").val() }, function (IsExits) { Process(IsExits); } ); } return ReturnCheckEmail; } function Process(IsExits) {///第三部 if (IsExits == "True") { $("span").remove(".email"); $(".email").val(' '); $("#TextBox1").parent().append("*OK"); alert('aa'); return true; } else { $("span").remove(".email"); $(".email").val(' '); $("#TextBox1").parent().append("*不存在这个邮箱"); alert("cc"); return false; } }

 

我很来是想  第一步  第三步  第二步这样的顺序走下去的

可是  我调试的时候老是第一步 第二步 第三步  这样的顺序出来的结果

网上说是JQuery不同步造成的....可是 我还是没能得到我想要的结果 求助....现在是半夜了  好困

11条回答
虎瘦雄心在
2楼-- · 2020-07-13 11:11

我之前用 async: false这个貌似没有作用。碰到这种全部是异步的头疼。但是按照你的流程,把相应 的方法写在前一个方法的回调里面 应该是没有问题的啊。实在不行 就把这些异步需要判断的东西直接放到服务器判断吧。

 

还有就是 我每次做函数返回值的时候return 一个值的时候都有问题。唉 能力有限。

查看更多
看我几分像从前
3楼-- · 2020-07-13 11:15

你的CheckEmail函数的返回值永远是没有的,

因为你CheckEmail这个函数中的$.ajax中的sucess中的

return true(或return false)是返给sucess函数的不是返给CheckEmail的

查看更多
Bombasti
4楼-- · 2020-07-13 11:18

在最外层去返回returnCheckMail,在success中的去设置returnCheckMail的true、false值。

这样试试呢。

查看更多
【Aperson】
5楼-- · 2020-07-13 11:18

在你调用ajax的函数里,外面定义返回的结果变量,然后在ajax中将结果赋给这个变量,在函数的末尾返回变量即可,看你直接的ajax中返回是错的,这样返回的是ajax的结果,而不是你函数要返回的结果 

查看更多
成全新的幸福
6楼-- · 2020-07-13 11:19

没仔细看,尼玛太长了看着累,我觉得你应该在回调里面处理你接下来的第二步, 第三步

查看更多
相关推荐>>
7楼-- · 2020-07-13 11:23

在AJAX里面直接return 本来就不科学 里面的匿名方法 对吧return 屏蔽 除非你改写JQ 将该位置 function 方法返回的值return      这个方案不建议   建议你在ajax前面定义一个变量  然后 Ajax 执行的时候赋值  Ajax 执行完判断该值 return 就行了    async: false 是有效的可以明确告诉你 是你返回的方式错误罢了 

查看更多
登录 后发表回答