关闭

$.ajax().reponseText为什么有时要在外部获取异步返回的数据

675人阅读 评论(0) 收藏 举报
分类:

通过$.ajax()的回调函数function(data){}获取到的数据只能在回调函数内部使用。

如果想在外部获取,怎么办呢?

使用$.ajax().responseText,可以在外部获取异步返回的数据

或者使用全局变量在外部获取异步返回的值

<pre name="code" class="javascript">//检查EMAIL
function Check_Email(){
	HideTips();
	var email=$("#Email").val();
    if($("#Email").val().length<1){
		 ShowTips("请输入你的Email地址!");  
		 $("#Email").focus();
		 return false;
	}else if ((/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/gi).test($("#Email").val()) == false){
		 ShowTips("请输入有效的Email地址!");       
		 return false;
	}

     
    else{
		
    //var ret=$.ajax({url:"ajax/checkfor1.php?action=reg_checkEmail",{email:email},async: false}).reponseText;
    $.post("ajax/checkfor1.php?action=reg_checkEmail",{email:email},function(data){
        
		if(data.success==0){
			ShowTips("对不起,该用户名已经被人占用!");  
			return false;
		     }
         },"json");
          
    }
    return true;
}

该检查Email地址的函数的本意是:

 通过ajax发送数据验证注册用户的email地址已经存在

如果返回的数据data.success==0,则说明该用户已经存在,return false结束该检查Email地址的函数。


但是上述代码不符合该函数的本意,return false结束的是回调函数,而不是Check_Email()。

正确的写法应该是

var ret=$.ajax({url:"ajax/checkfor1.php?action=reg_checkEmail",{email:email},async: false}).reponseText;


    if(ret==0){

                ShowTips("对不起,该用户名已经被人占用!");  
return false;

    }



这是在外部获取text文本的写法,在外部获取json对象的写法还不知道

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:386217次
    • 积分:6265
    • 等级:
    • 排名:第3944名
    • 原创:265篇
    • 转载:506篇
    • 译文:0篇
    • 评论:12条
    最新评论