zoukankan      html  css  js  c++  java
  • ajax实现验证用户名是否已经存在(struts2)

    在用户进行注册的时候,为了保证用户名的唯一性,需要在用户注册时进行用户名的验证,这个使用AJAX实现无刷新验证是最合适的。
    下面就是我的验证源码,在代码中通过注释讲解用法。
    1.jsp页面:

     <table>
                <tr>
                    <td>账号</td>
                    <td><input name="accountNumber" type="text" id="uname" />
                    	<div id="showResult"></div>
                    </td>
                </tr>
    </table>


    2.js代码(Ajax代码):
    这里用的是Jquery的ready方法,在页面完全加载后会调用ready方法,注意ready方法不应该和与<body onload=""> 一起使用。

    <script type="text/javascript">
      $(document).ready(function(){   
        var inputUserNameObj = $("#uname");   //将获取ID为uname的控件的对象
      
    	$("#uname").blur(function(){   //当该控件失去焦点时发生
    
    		var text = inputUserNameObj.val();   //获得用户输入的用户名
                                 
    		$.post("member_CheckAccounterNumber.action?accounterNumber="+text,null,function(response){    
                       //以POST方式跳转到action里面的方法中进行处理,并返回处理结果response
    
    			 if(response=="用户名已经存在"){ //根据返回值进行处理
    			            
    				document.getElementById("uname").focus();//用户名输入控件获得焦点
    				           
    			        document.getElementById("showResult").innerHTML="<font color='red'>"+response+"</font>"; 
                                    //在div中提示用户该用户名已经存在
    
    			 }else{
    				if(document.getElementById("uname").value=="") //判断用户名是否为空
    				{
    				document.getElementById("showResult").innerHTML="<font color='red'>"+"用户名不为空"+"</font>";
                                     //在div中提示用户该用户名不能为空
    
    	 			document.getElementById("uname").focus();//用户名输入控件获得焦点
    
    				}else{
    
    		             	 document.getElementById("showResult").innerHTML="<font color='blue'>"+response+"</font>"; 
                                     //在div中提示用户该用户名可用
    		             }
    			}
    	 	});  
    	});   
    });
    </script><pre name="code" class="plain">
    
    
    

     3.action代码:

    private String accounterNumber;
    	
    	public String getAccounterNumber() {
    		return accounterNumber;
    	}
    
    	public void setAccounterNumber(String accounterNumber) {
    		this.accounterNumber = accounterNumber;
    	}
        <span style="white-space:pre">	</span>//Ajax验证用户名,防止重复
    	public void CheckAccounterNumber()
    	{
    		//查找該用戶名是否存在
    		mUserRole=userbiz.queryMemberUserInfobyAccountName(accounterNumber);
    		
    		//設置响应编码UTF-8,防止中文乱码
    		res.setContentType("text/html;charset=UTF-8");   
    		  
    		if(mUserRole!=null)//判断是否存在
    		{
    		try {
    			res.getWriter().write("用户名已经存在");
    
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		}
    		else
    		{
    		try {
    			res.getWriter().write("此用户名可用");
    
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		}
    	}
    	
    }

    效果图展示:

     



    
        
            

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    DragonBones软件使用笔记 (pos工具、IK约束、关键帧等)
    【微信小游戏】CocosCreator 分包
    CocosCreator Shader笔记 (TheBookOfShader、渐变色、攻击闪白特效)
    【插件】cocos inspctor试用
    【微信小游戏】CocosCreator 微信小游戏排行榜
    [已解决]报错:The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone.
    Crontab 定时执行脚本配置
    【GIS】Mapbox、GeoServer矢量瓦片
    【PostGIS】实时坐标-电子围栏-判断-(参考遥想公瑾当年postgres+socket.io+nodejs实时地图应用实践)
    【MinIO】大文件上传配置
  • 原文地址:https://www.cnblogs.com/lovelyx/p/4867095.html
Copyright © 2011-2022 走看看