ajax的异步与同步以及向上层函数返回值的应用

//由于ajax异步的运行方式,在函数中很难向上层函数返回值,但在做登陆页面submit时二次校验以及返回所有校验的判断又是需要的,因而采取输入时校验异步,提交时校验同步
将async以参数的形式传递入函数既不影响输入时的用户体验,还实现了提交时校验的功能




<script type="text/javascript">
	function changeImg(){
		document.getElementById("checkImg").setAttribute("src","${pageContext.request.contextPath }/checkCode?"+(new Date()));
		
	};
	
	function checkUsername(isAsync){
		var flag=false;
		$.ajax({
			type:"post",
			url:"${pageContext.request.contextPath }/ajaxCheckUsername",
			async:isAsync,
			data:{"username":$("#username").val()},
			dataType:"text",
			success: function(data){
				flag = !(data=="true");
				if(data=="true"){
					$("#failInfoDiv").html("用户名不存在");
					$("#failInfoDiv").css("color","red");
				}else{
					$("#failInfoDiv").html(">");
					$("#failInfoDiv").css("color","black");
				}
			}
		});
		
		return flag;
	};
	
	
	
	function checkUserCode(isAsync){
		var flag = false;
		$.ajax({
			type:"post",
			url:"${pageContext.request.contextPath }/ajaxCheckCode",
			async:isAsync,
			data:{"checkCode":$("#checkCode").val()},
			dataType:"json",
			success: function(data){
				flag = data;
				if(data){
					$("#failInfoDiv").html(">");
					$("#failInfoDiv").css("color","black");
				}else{
					
					$("#failInfoDiv").html("验证码不正确");
					$("#failInfoDiv").css("color","red");
				}
			}
		});
		
		return flag;
	};
	
	$(function(){
		//为用户名输入框绑定focusout事件校验用户名是否存在并激活
		$("#username").focusout(function() {
			checkUsername(true);
			});
		
		//为验证吗绑定时间校验验证码是否正确
		$("#checkCode").focusout(function() {
			checkUserCode(true);
		});
		
		$("#loginForm").submit(function(){
			var flag = true;
			if(!checkUsername(false)){
				alert("用户名不存在");
				flag=false;
			}
			if(!checkUserCode(false)){
				alert("验证码不正确");
				flag=false;
			}
			return flag;
		});
	});

</script>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值