最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jquery ajax return沒(méi)有返回值的解決方法

 更新時(shí)間:2011年10月20日 22:54:13   作者:  
jquery ajax return沒(méi)有返回值的解決方法,需要的朋友可以參考下。
大家先看一段簡(jiǎn)單的jquery ajax 返回值的js
復(fù)制代碼 代碼如下:

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'>該用戶已被注冊(cè)</font></b>",false);
vusername.className="bigwrong";
return false;
}
}
});
}

但是我們調(diào)用這個(gè)getReturnAjax()發(fā)現(xiàn)始終取得的都是false,那就是說(shuō)return true,return false根本沒(méi)有起作用,在火狐下用firebug調(diào)試也證明,代碼根本不會(huì)執(zhí)行到return 部分。


我們?cè)囅朐诤瘮?shù)里先定義一個(gè)變量,然后在ajax里賦值,最后在函數(shù)的末尾返回這個(gè)變量,會(huì)不會(huì)有效果呢?我們把代碼修改如下:

復(fù)制代碼 代碼如下:

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'>該用戶已被注冊(cè)</font></b>",false);
vusername.className="bigwrong";
//return false;
}
}
});
return bol;
}

結(jié)果仍然不起作用。最后解決方案有2,如下


1、添加async:false.即修改為同步了,什么意思?(按同事解釋就是,這是等這個(gè)ajax有了返回值后才會(huì)執(zhí)行下面的js。一語(yǔ)道破天機(jī),怪不得以前很多ajax調(diào)用里面的賦值都不起作用)。這樣等ajax給bol賦值完畢后,才執(zhí)行下面的js部分。而剛剛異步的話,還沒(méi)有來(lái)得及賦值,就已經(jīng)return了。

復(fù)制代碼 代碼如下:

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'>該用戶已被注冊(cè)</font></b>",false);
vusername.className="bigwrong";
//return false;
}
}
});
return bol;
}

2、 通過(guò)傳入一個(gè)函數(shù)解決這個(gè)問(wèn)題。
復(fù)制代碼 代碼如下:

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'>該用戶已被注冊(cè)</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);
}

按需選擇自己需要的方案吧。一般大網(wǎng)站都采用第2種傳入函數(shù)的方式,來(lái)處理成功和失敗情況下的頁(yè)面提示。
復(fù)制代碼 代碼如下:

//添加async:false.即修改為同步
//等ajax給bol賦值完畢后,才執(zhí)行下面的js部分。而異步的話,還沒(méi)有來(lái)得及賦值,就已經(jīng)return了。
function vcodeYes() {
var bol = false;
$.ajax(
{
type: "GET",
url: "../Ajax/ValidationCode.ashx",
data: { txtVcode: $('#<%=txtVcode.ClientID%>').val() },
async: false,
success: function (data) {
if (data == "0") {
$.dialog({ icon: 'warning', follow: document.getElementById('txtVcode'), content: '驗(yàn)證碼錯(cuò)誤!' }).time(1);
changeCaptchaImage('imgVerify2', 'txtVcode');
}
else {
bol = true;
}
}
});
return bol;
}
//驗(yàn)證沒(méi)通過(guò)是 返回false 否則執(zhí)行下面函數(shù)
$('.getVodes').click(function () {
if (vcodeYes()) {
。。。執(zhí)行下面。。。
}
});

相關(guān)文章

最新評(píng)論

渝北区| 长宁区| 革吉县| 清水河县| 满城县| 阳信县| 苍溪县| 浮山县| 连云港市| 绿春县| 沁源县| 蓬莱市| 青河县| 凌云县| 东方市| 成武县| 诏安县| 麻城市| 永济市| 西充县| 蚌埠市| 唐山市| 西林县| 吐鲁番市| 台前县| 原阳县| 海安县| 同心县| 鄂伦春自治旗| 印江| 社旗县| 分宜县| 喀什市| 永泰县| 靖江市| 甘肃省| 崇信县| 荆州市| 隆回县| 武宁县| 怀来县|