http://www.w3school.com.cn/jquery/ajax_ajax.asphtml
http://www.cnblogs.com/fqw1987815/archive/2010/09/03/1816976.htmljquery
http://www.jb51.net/article/38768.htmajax
http://www.debugease.com/aspdotnet/962356.htmljson
http://www.2cto.com/kf/201310/249208.htmlapp
function GetReturnValue(url, jsonText) { var result = ""; $.ajax({ type: "POST", url: url, data: jsonText, contentType: "application/json;charset=utf-8", dataType: "json", async: false,//同步 success: function (json) { result = eval('(' + json.d + ')'); }, failure: function () { result = ""; } }) return result; }
你們先看一段簡單的jquery ajax 返回值的js 代碼 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裏賦值,最後在函數的末尾返回這個變量,會不會有效果呢?咱們把代碼修改以下: 代碼 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,以下 一、添加async:false.即修改成同步了,什麼意思?(按同事解釋就是,這是等這個ajax有了返回值後纔會執行下面的js。一語道破天機,怪不得之前不少ajax調用裏面的賦值都不起做用)。這樣等ajax給bol賦值完畢後,才執行下面的js部分。而剛剛異步的話,尚未來得及賦值,就已經return了。 代碼 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、 經過傳入一個函數解決這個問題。 代碼 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種傳入函數的方式,來處理成功和失敗狀況下的頁面提示。
1.ajaxStart(全局事件)async
2.beforeSend函數
3.ajaxSend(全局事件)post
4.success網站
5.ajaxSuccess(全局事件)
6.error
7.ajaxError (全局事件)
8.complete
9.ajaxComplete(全局事件)
10.ajaxStop(全局事件)
隱藏控件應該簡單一點
var yourvalue = 0;
//ajax取得值
yourvalue = yourvalue + ajaxvalue;