jquery里的$.post()在function里只能最后执行??????

「已注销」 2012-06-25 06:07:08
大家好!我刚接触java!
在做练习时发现jquery的function里默认总是最后执行的$.post(),何解???请高手指点一二,万分感谢

解释一下:
就是程序执行的时候总是先执行$.post()之后的代码,而$.post()总是会在最后执行!而且就算是后执行的$.post()吧,却也奇怪:后边的return true/false 也不会跳出function fvalidate()。
代码如下:


function fvalidate(text, textError) {
var code = $("#" + text);
var ce = $("#" + textError);
var r = 0;
$.post("validate", {"codeText" : code.val()}, function(rsp) {
if (rsp == "1") {
ce.html("<font color='green' size='2'>验证码正确</font>");
r=1;
alert(r);//作为测试用
} else {
ce.html("<font color='red' size='2'>验证码错误</font>");
r=0;
alert(r);
}
});
if (r==1) {
alert("++"+r);
return true;
}
alert("--"+r);
return false;
}

...全文
356 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiyu_02 2014-08-14
  • 打赏
  • 举报
回复
楼主怎么解决啊??
wanghaiman1986 2014-02-17
  • 打赏
  • 举报
回复
你好,我也遇到了这个问题,请问楼主怎么解决的啊
pzmyangkong 2012-06-29
  • 打赏
  • 举报
回复
试试这个...
http://zhidao.baidu.com/question/386314993.html
「已注销」 2012-06-28
  • 打赏
  • 举报
回复
万分感谢!这个问题我已经解决了!

顺便说下!您这样写法return只会跳出$.post();我想要的是给function fvalidate()返回真假值
pzmyangkong 2012-06-26
  • 打赏
  • 举报
回复
这是因为异步调用造成的,当执行post方法的时候,请求后台去执行,当后台尚未执行完毕,js不会等待,而执行post方法后面的代码,造成 程序执行的时候总是先执行$.post()之后的代码。
lz可以这样试试:

function fvalidate(text, textError) {
var code = $("#" + text);
var ce = $("#" + textError);
var r = 0;
$.post("validate", {"codeText" : code.val()}, function(rsp) {
if (rsp == "1") {
ce.html("<font color='green' size='2'>验证码正确</font>");
r=1;
alert("++"+r);
return true;//作为测试用
} else {
ce.html("<font color='red' size='2'>验证码错误</font>");
r=0;
alert(r);
alert("--"+r);
return false;
}
}


或者

function fvalidate(text, textError) {
var code = $("#" + text);
var ce = $("#" + textError);
var r = 0;
$.post("validate", {"codeText" : code.val()}, function(rsp) {
if (rsp == "1") {
ce.html("<font color='green' size='2'>验证码正确</font>");
r=1;
alert(r);//作为测试用
return returnResult(r);
} else {
ce.html("<font color='red' size='2'>验证码错误</font>");
r=0;
alert(r);
return returnResult(r);
}
});
}
function returnResult(var r){
if (r==1) {
alert("++"+r);
return true;
}
alert("--"+r);
return false;
}

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧