首页 新闻 会员 周边

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

0
悬赏园豆:50 [已解决问题] 解决于 2020-07-13 10:48

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不同步造成的....可是 我还是没能得到我想要的结果 求助....现在是半夜了  好困

.F.的主页 .F. | 初学一级 | 园豆:13
提问于:2014-04-22 03:14
< >
分享
最佳答案
0

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

收获园豆:50
最佳损友。 | 初学一级 |园豆:63 | 2014-04-22 10:08

刚开始我就是这么做的  可是  返回的是未定义....

.F. | 园豆:13 (初学一级) | 2014-04-22 10:10

@.F.: 应该不会吧,未定义的话可能是你定义的方法没有写在调用的前面,你要明白JS执行顺序

最佳损友。 | 园豆:63 (初学一级) | 2014-04-22 10:12

@最佳损友: 我这个Post是异步的  还未返回的结果的时候就 return ”未定义“ 了

.F. | 园豆:13 (初学一级) | 2014-04-22 10:43
其他回答(10)
0

是会有这个问题,2种办法

1.是先把ajax的结果存在一个控件,然后后面处理判断的时候,根据控件值判断。

2.把process部分一起放在ajax的success函数里面处理。不要单独出来。

清海扬波 | 园豆:825 (小虾三级) | 2014-04-22 11:32

第一张图就是Process放在Ajax的成功函数里面的  还是不管用啊

Ajax结果存在一个控件怎么操作啊   有米有代码可供参考.....

支持(0) 反对(0) .F. | 园豆:13 (初学一级) | 2014-04-22 11:37

@.F.: 放一个hidden,里面存IsExist。

支持(0) 反对(0) 清海扬波 | 园豆:825 (小虾三级) | 2014-04-22 11:46
0

我没记错的话 Ajax是可以设置同步的   async: false

呓语鑫 | 园豆:313 (菜鸟二级) | 2014-04-22 17:47
0

代码太长了。

lucika.zh | 园豆:62 (初学一级) | 2014-04-24 11:23
0

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

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

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

junjieok | 园豆:779 (小虾三级) | 2014-04-30 13:51

  我是有对 $.Ajax的返回值进行  判断之后  返回给CheckEmail的

支持(0) 反对(0) .F. | 园豆:13 (初学一级) | 2014-04-30 14:02
0

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

 

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

I-Can | 园豆:121 (初学一级) | 2014-06-05 16:49

哎 确实很麻烦啊。。。

支持(0) 反对(0) .F. | 园豆:13 (初学一级) | 2014-06-05 20:33
0

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

这样试试呢。

Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-06-25 17:05
0

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

苦逼面条 | 园豆:289 (菜鸟二级) | 2014-09-25 15:44
0

谁在调用bb()这个都没有的话怎么来第一步啊

我是糖糖 | 园豆:446 (菜鸟二级) | 2014-10-21 12:48
0

ajax  请求回的结果 无法长存 必须丢到页面的某个位置

建议使用隐藏域 确实没发现你哪里调用了bb  楼主的命名 很给力 我很欣赏你哟 哦 hoho

流星霜紫 | 园豆:473 (菜鸟二级) | 2015-01-12 17:57
0

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

kungge | 园豆:132 (初学一级) | 2015-04-17 00:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册