Ajax中return false无效,代码如下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax中return false无效,代码如下相关的知识,希望对你有一定的参考价值。

FORM表单中:onsubmit="return userOpenLogin(form)"
JS中:
//AJAX
$.get(domain_name + '/?C=checkUserEmailAjax&email=' + val, function(data)
if(data == 1)
$("#reg-mail").attr("class","font_green");
$("#reg-mail").html("该邮件地址可用!");
else
$("#reg-mail").attr("class","font_red");
$("#reg-mail").html("该邮件地址已被使用。");
return false;

);
return true;
用户信息输错了照样跳转,怎么回事呢?

你的return false 写错位置了,你这个return false实际上只是停止了get方法的回调函数的继续向下执行,应该写在userOpenLogin方法结尾处!而userOpenLogin结尾处,你始终都是return true,所以总是会跳转!
你可以在userOpenLogin方法里边定义个变量值,将return false这句代码替换成给这个变量赋值,然后在userOpenLogin结尾处,根据这个变量来判断是否要跳转!
参考技术A 最后始终有个ruturn true; 始终都要执行 就算你错了还不是一样的返回true,不就跳转了。。去掉把追问

去掉了照样跳转,能解释下是怎么回事吗?

jquery中ajax用return来返回值无效

jquery中,ajax返回值,有三种写法,只有其中一种是成功的

/**
 * async:false,同步调用
 * 返回1:2
 * 失败
 * 分析:ajax内部是一个或多个定义的函数,ajax中return返回值,返回到ajax定义函数,而不是ajax外层的函数 
 */
function checkAccount1(){
	var result = "1:2";
	$.ajax({
		url : path+‘/user/checkAccount.do‘,
		type : "post",
		data : {‘account‘:"1",‘accType‘:1},
		async : false,
		success : function(data) {
			return "1:1";
		}
	});
	return result;
}

/**
 * async:true,异步调用
 * 返回1:2
 * 失败
 * 分析:result = "2:1"和后面return result异步执行,导致return result先执行
 */
function checkAccount2(){
	var result = "2:2";
	$.ajax({
		url : path+‘/user/checkAccount.do‘,
		type : "post",
		data : {‘account‘:"1",‘accType‘:1},
		async : true,
		success : function(data) {
			result = "2:1";
		}
	});
	return result;
}

/**
 * 同步调用,且在ajax对全局变量进行设值
 * 返回:"3:1"
 * 成功
 * 分析:先执行result = "3:1";再往下执行return result;
 */
function checkAccount3(){
	var result = "3:2";
	$.ajax({
		url : path+‘/user/checkAccount.do‘,
		type : "post",
		data : {‘account‘:"1",‘accType‘:1},
		async : false,
		success : function(data) {
			result = "3:1";
		}
	});
	return result;
}

  

以上是关于Ajax中return false无效,代码如下的主要内容,如果未能解决你的问题,请参考以下文章

jQuery.ajax为啥不能实现return值

ajax jsonp请求async设置false同步无效

jquery ajax获取return值问题

layui 表单ajax验证无效的解决方案

使用 jQuery 和 AJAX 提交表单如果 return 设置为 false 则不会将值插入 SQL 以防止重定向

关于$.ajax()、$.get()、$.post()获取return值得问题