ajax方式校验return false后代码仍然执行

$.ajaxSettings.async = false;
$.get("{% url 'user:checkdep' %}" + '?depname='+$('#depname').val(), function(result){
if(result.res){
alert("区域名称已存在,请重新输入");
return false;
};
});
alert('仍然执行这里');

原因是不能在ajax的回调里return false。解决方法是在全局中定义变量flag,回调中改变flag,然后再在ajax外部根据flag决定是否return false

var flag=true;
$.ajaxSettings.async = false;
$.get("{% url 'user:checkdep' %}" + '?depname='+$('#depname').val(), function(result){
flag=result.res
});
if(flag){
  alert("xxxxxxx");
  return false;
}
posted @ 2020-07-31 12:18  大牛等等我  阅读(671)  评论(0编辑  收藏  举报