博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原生ajax和JQuery实现异步对注册姓名的校验
阅读量:4141 次
发布时间:2019-05-25

本文共 2504 字,大约阅读时间需要 8 分钟。

一、采用原生ajax实现对用户注册的校验

1.创建一个servlet来实现逻辑
其中省略了数据库的连接操作以及CheckUser(name)方法

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		try {			request.setCharacterEncoding("UTF-8");			//收到来自网页的用户名		String name  = request.getParameter("name");		//调用CheckUser(name)方法对改姓名查重		UserDao userDao = new UserDaoImpl();			boolean checkUser = userDao.CheckUser(name);			//对前段返回值			if(checkUser) {				response.getWriter().println(1);			}			else				response.getWriter().println(2);		} catch (Exception e) {		}	}	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		doGet(request, response);	}}

2.前段网页注册用户代码

(1)注册表格的创建
解释: οnblur="checkUserName(),onblur是鼠标失去焦点的时候执行的行为,也就是鼠标移开用户名这一栏,我这里设置了失去焦点实现一个方法checkUserName()

用户名:
密码

(2)ajax对象的创建

死代码,不需要记忆

function ajaxFunction(){	   var xmlHttp;	   try{ // Firefox, Opera 8.0+, Safari	        xmlHttp=new XMLHttpRequest();	    }	    catch (e){		   try{// Internet Explorer		         xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");		      }		    catch (e){		      try{		         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");		      }		      catch (e){}		      }	    }				return xmlHttp;	 }

(3)对上面的checkUserName()方法的实现

function checkUserName(){		//获取输入框的值 document 整个网页		var name = document.getElementById("name").value;		//1. 创建对象		var request  = ajaxFunction();		//2. 发送请求		request.open("POST","/ajaxTest/CheckUserNameServlet",true); 		//注册状态改变监听,获取服务器传送过来的数据		request.onreadystatechange =function(){			if(request.readyState ==4&&request.status==200){			//设置变量data接受后端传来的返回值				var data = request.responseText;				if(data ==1){					document.getElementById("span01").innerHTML ="用户名已存在";				}				else{					document.getElementById("span01").innerHTML ="用户可用";				}			}		}				request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");		request.send("name="+name);	}

二、采用jQuery的方法来实现

前面的方法都不变,唯一改变的就是前段jsp里面的代码

function checkUserName() {		//1. 获取输入框的内容		var name = $("#name").val();				//2. 发送请求		$.post("/day16/CheckUserNameServlet" , {name:name} , function(data , status){			//alert(data);			if(data == 1){//用户名存在				//alert("用户名存在");				$("#span01").html("用户名已被注册");			}else{				//alert("用户名可用");				$("#span01").html("用户名可以使用");			}		} );		//3. 输出响应的数据到页面上。	}

不需要创建对象,就可以直接实现checkUserName()方法来实现对用户名的校验

浏览效果:
没有被注册过的用户名:
首先输入一个没有被注册过的用户名,检测可以用

已经被注册过的用户名:

在这里插入图片描述

转载地址:http://tfkti.baihongyu.com/

你可能感兴趣的文章
1061 Dating (20 分)
查看>>
1060 Are They Equal (25 分)
查看>>
83. Remove Duplicates from Sorted List(easy)
查看>>
88. Merge Sorted Array(easy)
查看>>
leetcode刷题191 位1的个数 Number of 1 Bits(简单) Python Java
查看>>
leetcode刷题198 打家劫舍 House Robber(简单) Python Java
查看>>
NG深度学习第一门课作业2 通过一个隐藏层的神经网络来做平面数据的分类
查看>>
leetcode刷题234 回文链表 Palindrome Linked List(简单) Python Java
查看>>
NG深度学习第二门课作业1-1 深度学习的实践
查看>>
Ubuntu下安装Qt
查看>>
Qt札记
查看>>
我的vimrc和gvimrc配置
查看>>
hdu 4280
查看>>
禁止使用类的copy构造函数和赋值操作符
查看>>
C++学习路线
查看>>
私有构造函数
查看>>
组队总结
查看>>
TitledBorder 设置JPanel边框
查看>>
DBCP——开源组件 的使用
查看>>
抓包工具
查看>>