利用JQuery实现Ajax,完成用户注册或修改个人信息时名称不能重复的校验

利用JQuery实现Ajax,完成用户注册或修改个人信息时名称不能重复的校验

jsp页面中的注册表单部分

//ononsubmit:提交时触发checkAll()方法,若用户名,或密码邮箱等不合法,阻止其注册
<form action="用于验证用户名是否重复的servlet" method="post" onsubmit="return checkAll()">
    
    //onblor:失去焦点时触发检查名字是否合法的Ajax验证
	用户名:<input type="text" id="userInput" onblor="checkNameByJQuery()"/>
    
    //这个标签用于提示用户姓名是否合法
    <span id="userNameSpan"></span>
    
    //提交
	<input type="submit" value="注册提交"/>
</form>

jsp页面中的利用Ajax验证用户名是否重复部分

function checkNameByJQuery(){
    
    //$("#stuInput")相当于document.getElementById("stuInput"),.val()用于获取用户输入的名字的值
    var stuNameValue = $("#stuInput").val();
    
    //验证姓名格式的正则表达式
   	var reg = /^[a-z0-9\u4e00-\u9fa5]{2,}$/;
    
    //获取用于提示用户姓名是否合法的span标签的对象
   	var stuSpan = $("#stuNameSpan");
    
   	var flag = false;
    
   	if(reg.test(stuNameValue)){
        
        //路径	参数	请求方式	回调函数	代码同步	(注意这里代码最后是,而不是;)
      	$.ajax({
     
         //检查名字是否相同的servlet
         url:"/StuManage/checkNameServlet",
            
         //向servlet发送的数据
         data:{"stuName":stuNameValue},
            
         //提交方式get,post都可以
         type:"get",
            
         //async:默认是true,即异步方式,false为同步方式。
         //如果为true,那么$.Ajax执行后,会继续执行ajax后面的脚本,页面线程执行后速度高于向后台请求数据的线程,则checkNameByJQuery()方法返回值会是undefined或false,而不是T或F。
         //若为false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。checkNameByJQuery()方法返回值才是T或F。
         async:false,
            
         //如果查询请求成功调用函数
         success:function(result){
            if(result == "true"){
               stuSpan.html("√").css("color","green"); 
               return true;
            }else{
               stuSpan.html("用户名已存在").css("color","red"); 
               return false;
            }
         }
      });
   }else{
      stuSpan.html("用户名格式错误").css("color","red"); 
      return false;
   }
}

jsp页面中姓名验证失败,阻止提交部分

function checkAll(){
   var result = checkNameByJQuery();
   if(result == true){
      return true;
   }else{
      return false;
   }
}

判断用户名是否重复的servlet

/**
* 判断用户名称是否相同的servlet
*/
//从页面获取name的值
String userName = request.getParameter("valueName");
    
List<User> listUser = new UserDao().findUserByName(userName);

if (listUser.size() == 0) {
    response.getWriter().print("true");
} else {
    response.getWriter().print("false");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值