加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

jquery ajax return值无法获取的办理要领

发布时间:2018-08-16 09:42:27 所属栏目:业界 来源:站长网
导读:各人先看一段简朴的jquery ajax 返回值的js 代码: Copy to Clipboard 引用的内容:[www.veryhuo.com]function getReturnAjax{ $.ajax({ type:POST, url:ajax/userexist.aspx, data:username=+vusername.value, success:function(msg){ if(msg==ok){ showt

各人先看一段简朴的jquery ajax 返回值的js

代码:

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com] function getReturnAjax{
$.ajax({
type:"POST",
url:"ajax/userexist.aspx",
data:"username="+vusername.value,
success:function(msg){
if(msg=="ok"){
showtipex(vusername.id,"<img src='images/ok.gif'/><b><font color='#ffff00'>该用户名可以行使</font></b>",false)
return true;
}
else
{
showtipex(vusername.id,"<img src='images/cancel.gif'/><b><font color='#ffff00'>该用户已被注册</font></b>",false);
vusername.className="bigwrong";
return false;
}
}
});
}


可是我们挪用这个getReturnAjax()发明始终取得的都是false,那就是说return true,return false基础没有起浸染,在火狐下用firebug调试也证明,代码基础不会执行到return 部门。

我们试想在函数里先界说一个变量,然后在ajax里赋值,最后在函数的末端返回这个变量,会不会有结果呢?我们把代码修改如下:

代码:

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com] function getAjaxReturn()
{
var bol=false;
$.ajax({
type:"POST",
url:"ajax/userexist.aspx",
data:"username="+vusername.value,
success:function(msg){
if(msg=="ok"){
showtipex(vusername.id,"<img src='images/ok.gif'/><b><font color='#ffff00'>该用户名可以行使</font></b>",false)
// return true;
bol=true;
}
else
{
showtipex(vusername.id,"<img src='images/cancel.gif'/><b><font color='#ffff00'>该用户已被注册</font></b>",false);
vusername.className="bigwrong";
//return false;
}
}
});
return bol;
}
 功效如故不起浸染。最后办理方案有2,如下

1、添加async:false.即修改为同步了,什么意思?(按同事表明就是,这是等这个ajax有了返回值后才会执行下面的js。画龙点睛天机,怪不得早年许多ajax挪用内里的赋值都不起浸染)。这样等ajax给bol赋值完毕后,才执行下面的js部门。而方才异步的话,还没有来得及赋值,就已经return了。

代码: Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com] function getAjaxReturn()
{
var bol=false;
$.ajax({
type:"POST",
async:false,
url:"ajax/userexist.aspx",
data:"username="+vusername.value,
success:function(msg){
if(msg=="ok"){
showtipex(vusername.id,"<img src='images/ok.gif'/><b><font color='#ffff00'>该用户名可以行使</font></b>",false)
// return true;
bol=true;
}
else
{
showtipex(vusername.id,"<img src='images/cancel.gif'/><b><font color='#ffff00'>该用户已被注册</font></b>",false);
vusername.className="bigwrong";
//return false;
}
}
});
return bol;
}


2、 通过传入一个函数办理这个题目。

代码: Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com] function getAjaxReturn(success_function,fail_function)
{
var bol=false;
$.ajax({
type:"POST",
url:"ajax/userexist.aspx",
data:"username="+vusername.value,
success:function(msg){
if(msg=="ok"){
showtipex(vusername.id,"<img src='images/ok.gif'/><b><font color='#ffff00'>该用户名可以行使</font></b>",false)
success_function(msg);
}
else
{
showtipex(vusername.id,"<img src='images/cancel.gif'/><b><font color='#ffff00'>该用户已被注册</font></b>",false);
vusername.className="bigwrong";
fail_function(msg);
//return false;
}
}
});
function success_function(info)
{
//do what you want do
alert(info);
}
funciont fail_function(info)
{
//do what you want do
alert(info);
}

按需选择本身必要的方案吧。一样平常大网站都回收第2种传入函数的方法,来处理赏罚乐成和失败环境下的页面提醒。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读