楼主 发表于: 2010-10-04 18:26:43 先上代码
在这个existProduct(obj)这个函数中,我调用jquery中的getJSON函数,返回数据库中查找的结果,这个用firebug查过应该没有问题,离谱的就是在执行的时候,代码先执行的return falg,然后再执行getJSON,请高手指点指点 |
|||
对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 回复次数:5 |
|
#1 得分:10 回复于: 2010-10-04 20:55:41
|
||
2014年4月微软MVP申请开始啦!对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 |
|
#2 得分:0 回复于: 2010-10-05 08:46:59 yes 或no 是../product/searchProductByName.action 返回的json ,格式为[{"existproduct":"yes(no)"}],也可以取到这个值,只是顺序不一样,existProduct(obj)方法首先没有执行异步请求,而是先返回回调函数中的falg,由于falg没有初始化,我在浏览器中alert看到就是undefine,然后才是执行异步请求,接着再回到回调函数中返回falg='yes'或是'no',这是什么原因呀 |
票选博客之星 得下载分 赢精美奖品对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 |
#3 得分:30 回复于: 2010-10-05 10:28:56 函数中返回值没有什么用的 你需要在existProduct方法中声明一个变量,并且ajax用$.ajax来发送,设置为同步的,在回调函数设置这个变量,然后再existProduct最后返回这个变量
|
|||
CSDN投诉事项说明对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 |
#4 得分:10 回复于: 2010-10-05 11:28:07 ajax默认是异步的,也就是说不等你上面的代码运行完,它就执行下面的代码了,所以才会出现你说的情况,你可以设置它为同步。那就先执行上面的代码,然后,再执行下面的代码。 |