ajax success回调函数里return undefined的原因?

最近在做毕业项目,注册表单里用$.ajax提交数据给服务器端php检查账号是否已经注册过,success时函数的返回值为什么总是undefined?

 var reg_mail = $.trim($("#reg_mail").val()).toLowerCase(); //注册邮箱获取    var reg = /^[a-z0-9]+[@][a-z0-9]+[.][a-z0-9]+$/; //设置邮箱匹配正则    if(reg.test(reg_mail)){  //如果邮箱符合规范就提交服务器进行校对        $("#reg_mail").parent().find(".err_tip").html("");        $("#reg_mail").parent().find(".succ_tip").html("邮箱格式正确");        $.ajax({ //检查用户名存不存在                type:‘post‘,                url:‘php/reg_check.php‘, //服务器端的php文件,用于校验账号是否已经存在                data:{umail:reg_mail}, //提交邮箱给php文件                success:function(data){                    if(data.code==0){  //如果邮箱已经存在就返回code为0                        $("#reg_mail").parent().find(".succ_tip").html("");                        return false;  /* 不明白为什么这里return回来的总是undefined*/                    }else{                        $("#reg_mail").parent().find(".err_tip").html("");                        $("#reg_mail").parent().find(".succ_tip").html(data.msg);                        return true; /* 不明白为什么这里return回来的总是undefined*/
                    }                },                error:function(data){flag=false; return false; }            }        )    }    else{        $("#reg_mail").parent().find(".succ_tip").html("");        $("#reg_mail").focus().parent().find(".err_tip").html("邮箱格式不正确,请重新输入");        return false;    }}

我自己百度了一下,有的说是ajax的执行顺序并不全部是根据代码顺序来的。但这样解释似乎也不对,烦请大神指点一二。谢谢先。
时间: 2024-11-05 18:40:21

ajax success回调函数里return undefined的原因?的相关文章

正则replace 回调函数里接收的参数是什么?

前言 我们都知道 replace 在做替换处理方面会很常用,通常也是第一个会想到的方法.replace 第一个参数可以传入 string 或 RegExp,第二个参数可以传入 string 或 一个回调函数.在能够传入回调函数之后,事情就开始变得不简单了(如果有用过map,filter等函数,你就知道传入回调函数的强大).在做替换处理时,我们能够获取到更多的有效信息,处理的手段也可以更加多样化,而不是单纯的替换.接下来我们,来看看回调函数里接受的参数到底是什么? 回调中接收到的参数 回调中最少可

【笔记】关于jq $.ajax 函数 success回调函数不能赋正确值或返回正确值的问题

最近在一个项目里面打算实现如下功能: 当我注册账号的时候当输入账号完毕后输入框失焦时执行一个 ajax 请求,验证账号是否被注册,并未这个输入框的 isCorrect属性赋值,如果没有被注册 isCorrect属性值为"true",否则为 "false".代码如下: ajax: function(obj){ /* { elem: //验证的元素, hintsContent: //提示框元素, errorColor: //错误时显示的颜色, url: //后台处理页地

struts通过Ajax返回数据时,例如对象类型,没有执行Ajax的回调函数

<result type="json"  name="success">                 <param name="includeProperties">msg.*,对象.*</param>                <!--  <param name="includeProperties">msg</param> -->      

按照顺序执行异步ajax的回调函数

//按顺序执行多个ajax命令,因为数量不定,所以采用递归 function send(action, arg2) { //将多个命令按顺序封装成数组对象,递归执行 //利用了deferred对象控制回调函数的特点 $.when(send_action(action[0], arg2)) .done(function () { //前一个ajax回调函数完毕之后判断队列长度 if (action.length > 1) { //队列长度大于1,则弹出第一个,继续递归执行该队列 action.sh

。。。Ajax的回调函数function(data)中,data的返回类型。。。

今天在做项目的过程中,突然发现了一个有趣的问题,那就是我在Java服务器端写程序,String result = "0";然后通过out.println(result),将result值写入到Ajax回调函数的参数data中去,返现无论这个result定义为String,还是int,在前台function(data)中,这个data都是int类行的,也就是说如果你用data=="0"这句话测试,返回的是false!只有data==0,才是返回true! 一步一个脚印

从ajax的回调函数(success等)中取返回值

1 var strs = new Array(); 2 3 function getData() { 4 var strs2 = new Array(); 5 $.ajax({ 6 type : "POST", 7 url : "findAttentionGoods.action", 8 data : "pno=" + pageNo, 9 async : false, 10 success : function(msg) { 11 strs2 =

layer 点击yes后在回调函数里获取layer.open({})iframe里面元素

参考:http://fly.layui.com/jie/19690/ yes: function(index, layero) { uid.value = $(layero).find('iframe')[0].contentWindow.user_id.value; //将子窗口中的 user_id 抓过来 layer.close(index); //关闭弹窗 }, 原文地址:https://www.cnblogs.com/lvlin241/p/9313177.html

不使用回调函数的ajax请求实现(async和await简化回调函数嵌套)

在常规的服务器端程序设计中, 比如说爬虫程序, 发送http请求的过程会使整个执行过程阻塞,直到http请求响应完成代码才会继续执行, 以php为例子 $url = "http://www.google.com.hk"; $result = file_get_contents($url); echo $result; 当代码执行到第二行时,程序便陷入了等待,直到请求完成,程序才会继续往下跑将抓取到的html输出.这种做法的好处是代码简洁明了,运行流程清晰, 容易维护. 缺点就是程序的运

ajax回调函数中使用$(this)取不到对象的解决方法

如果在ajax的回调函数内使用$(this)的话,实践证明,是取不到任何对象的,需要的朋友可以参考下 $(".derek").each(function(){ $(this).click(function(){ var params = $(this).parent().serialize(); var obj=$(this).parent().siblings("div#caskContent"); var form=$(this).parent(); $.aja