1. 程式人生 > >jquery ajax 無法獲取返回值問題

jquery ajax 無法獲取返回值問題

最近在做會員註冊這塊。用了jquery的 ajax 驗證使用者名稱。郵箱,驗證碼

function check_email()
{
var check_email = $("#reg_mail").val();
var reg = /^([a-zA-Z0-9_-])[email protected]([a-zA-Z0-9_-])+((/.[a-zA-Z0-9_-]{2,3}){1,2})$/;
    flag = reg.test(check_email);
if(flag)
{
   var email_value = $('#reg_mail').val();
   $.get("[var.base_url]register.php",{check_name:"email",check_value:email_value,async:false},function(json){
     //$('#res_mail').html(json);
     if(json == "ok")
     {
      $('#res_mail').html("<font color='green' font-size='12'><b>此email可以註冊!</b></font>");
      return true;
     }else{
      $('#res_mail').html("<font color='red' font-size='12'><b>此email已被註冊!</b></font>");
      return false;
     }
   });
}else{
$("#res_mail").html("<font color='red' font-size='12'><b>請輸入正確的郵箱地址!</b></font>");
   return false;
}
}

開始是這麼寫的。 可是總是無法獲取到返回的狀態true 或false 返回一個undefined   查了很多資料。csdn上的一個帖子很經典:

var boolean = false;
        $.get(url,null,function(data)
{ //理解這個不難,只要你先知道jquery中的方法返回的都是jquery的物件或jquery指定的物件。
//jquery的get、post等ajax方法預設是非同步互動方式,所以在get方法還沒有執行完成的時候就已經return了,這時的bl就是你定義的bl = false;所以一直返回false;改成同步的應該有值了
//所以要想放回bl的正確值,你得改下get方法。一般不在ajax方法中做返回值處理。
//可以用$.data("bl", bl);儲存你的值,然後用$.data("bl")取值。
        if(data.indexOf("true")>=0){
               $("#mid").html("登陸成功");
               bl = true;
               $.data("bl", bl);
           

}
        else
{
                    $("#mid").html("使用者名稱或密碼錯誤");
               
               bl = false;
               $.data("bl", bl);
           
}
    });
    return bl;

這樣就可以獲取到返回的狀態了。用data方法 儲存 值。然後獲取。還有一個方法就是

$.get(url,{async: false},function(data) 設定傳輸方式為同步傳輸

最終修改函式如下。 測試ok。

function check_email()
{
var check_email = $("#reg_mail").val();
var reg = /^([a-zA-Z0-9_-])[email protected]([a-zA-Z0-9_-])+((/.[a-zA-Z0-9_-]{2,3}){1,2})$/;
    flag = reg.test(check_email);
if(flag)
{
   var email_value = $('#reg_mail').val();
   $.get("[var.base_url]register.php",{check_name:"email",check_value:email_value,async:false},function(json){
     //$('#res_mail').html(json);
     if(json == "ok")
     {
      $('#res_mail').html("<font color='green' font-size='12'><b>此email可以註冊!</b></font>");
      tamp_email = true;
      $.data("tamp_email",tamp_email);
      //$('#sub_reg').attr("disabled", false);
     }else{
      $('#res_mail').html("<font color='red' font-size='12'><b>此email已被註冊!</b></font>");
      tamp_email = false;
      $.data("tamp_email",tamp_email);
      //$('#sub_reg').attr("disabled", true);
     }
   });
   return tamp_email;
}else{
$("#res_mail").html("<font color='red' font-size='12'><b>請輸入正確的郵箱地址!</b></font>");
   return false;
}
}

相關推薦

jquery ajax 無法獲取返回問題

最近在做會員註冊這塊。用了jquery的 ajax 驗證使用者名稱。郵箱,驗證碼 function check_email() { var check_email = $("#reg_mail").val(); var reg = /^([a-zA-Z0-9_-])[emai

ajax回調函數回調無法獲取返回

nbsp .json 開始 str error: != 註入 null ole function kakaajax(obj, callback) { //函數執行第一步傳入兩個參數(obj,callback(a))所以如果想在此處獲取 ajax的返回值沒門因為請求未發出

cordova_iFrame中呼叫拍照功能無法獲取返回

問題描述: 今天寫了一個測試程式,在index.html中嵌入一個iFrame,並在iFrame中載入一個sub.html子頁面,然後在sub.html中呼叫cordova的拍照方法,拍照方法能呼叫成功,但是無法獲取到拍照回撥的值。 除錯過程: 一開始以為是cordova原

jquery ajax非同步 獲得返回

<span style="font-size:24px;"><strong>使用ajax非同步到一般處理程式ashx</strong></span>$.

php jquery ajax 無法傳遞POST的問題

        做畢業設計從上週3開始,就遇到在表單頁面中將數庫傳到php處理頁面,無法接收到表單資料的問題。不管我怎麼除錯都不能把POST的值傳遞到php的處理頁面,我已經試了4天了,連今天是第五天,原來是問題出現在兩個方面: 1、mysqli_escape_String

JavaScript監聽、設定全部ajax訪問屬性獲取返回(狀態碼)

JavaScript監聽、設定全部ajax訪問屬性(requestHeader)獲取返回值(狀態碼) 設定全部ajax訪問屬性 監聽全部ajax返回值(狀態碼) 設定ajax屬性(req

JQuery提交Form表單,獲取返回

$.post("/Feedback/wtdata/save.do", $("#wdsform").serialize(), function(data){ alert(data.message); }

JQuery ajax 把後臺返回的List資料 遍歷出來 賦給div

1、效果 2、前端程式碼 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-T

使用ajax時success無法得到返回的問題

今天在使用ajax時,一直在除錯,請求路徑和資料都沒問題,但是就是得不到資料,很是疑惑 原始碼時這樣的 <script> $(document).ready(function(){ $('[type=button]').click(function

Ext.Ajax獲取返回(引數)

本文轉載自:http://blog.csdn.net/dingherry/article/details/6798816 [javascript] view plain copy Ext.Ajax.request({                  

Jquery使用Ajax構建方法返回

使用Jquery 非同步請求返回資料 function showLog(account_id){ var logss; var ajaxUrl="/tes"; $.ajax({

函式內部的 $.ajax() 獲取不到 ajax 的 return 返回

/*常見錯誤示例 直接在 ajax 裡面return 結果 */ function demo(){ $.ajax({ url : 'test.do', type : "post", data : {},

php pdo調用SQLServer存儲過程無法獲取返回結果

image ges 寫法 調用存儲過程 csdn sqlserve procedure srv lan   確定存儲過程寫的沒問題,php調用後,跟蹤了語句,也是沒問題,就是獲取不到返回結果。折騰,搞定。   較之前明確了1. 調用存儲過程傳參的寫法; 2. 獲取返回結果集

java後臺發送請求並獲取返回

otto wid eight quest 所有 ica 輸出流 lds thead 項目中需要前端發送請求給後端,而後端需要從另一個平臺中取數據然後再透傳給前端,通過下述代碼將其實現.在此記錄一下.package com.autotest.utils;import java

python執行系統命令後獲取返回

這就是 () err div log system clas pri 命令 import os, subprocess# os.system(‘dir‘) #執行系統命令,沒有獲取返回值,windows下中文亂碼# result = os.popen(‘dir‘)

在批處理中調用VBScript(支持獲取返回

都是 exp sap net 什麽 api 獲得 鏈接 結果 有個帖子簡單介紹了利用mshta來調用vbs的方法(鏈接)。雖該文章作者認為 到此,在bat中使用vbs得到了完全解決。從此可以在bat和vbs間自由的航行了。 但任然無法獲取vbs的返回值,可見該方法有一定

C#異步執行帶有返回和參數的方法,且獲取返回

urn 利用 回調方法 ext col list ont mes gate 很多時候需要用到這些小知識點,做做筆記一起成長 下面是需要異步執行的方法 //獲取所有的郵件 private List<EmailModel> GetEmailOnl

Java調用Python腳本並獲取返回

enum 獲取 error code adt catch sys.argv AI oot 在Java程序中有時需要調用Python的程序,這時可以使用一般的PyFunction來調用python的函數並獲得返回值,但是采用這種方法有可能出現一些莫名其妙的錯誤,比如Impor

PCB MS SQL跨庫執行SQL 獲取返回

char AS span pre 必須 tno 執行 sql @param 一.SQL跨庫執行SQL 獲取返回值 DECLARE @Dblink nvarchar(100) DECLARE @sql nvarchar(MAX) DECLARE @layer

Ajax詳解及使用Ajax時的返回類型有哪些?

itl use text 數據 .ajax ack 部分 $.ajax llb Ajax詳解 Ajax = 異步 JavaScript 和 XML。 Ajax 是一種用於創建快速動態網頁的技術。 通過在後臺與服務器進行少量數據交換,A