标签:
<html> <head> <title>用户注册</title> <meta http-equiv="content-type" content="text/html;charset=gb2312"> <script language="javascript" type="text/javascript"> <!-- //定义用于存储XMLHttpRequest对象的变量 var xmlHttp = null; //创建XMLHttpRequest对象 function creatXMLHTTP() { //判断浏览器是否支持ActiveX控件 if(window.ActiveXObject) { //将所有可能出现的ActiveXObject版本都放在一个数组中 var arrXmlHttpTypes = [‘Microsoft.XMLHTTP‘,‘MSXML2.XMLHTTP.6.0‘,,‘MSXML2.XMLHTTP.5.0‘,‘MSXML2.XMLHTTP.4.0‘,‘MSXML2.XMLHTTP.3.0‘,‘MSXML2.XMLHTTP‘]; //通过循环创建XMLHttpRequest对象 for(var i=0;i<arrXmlHttpTypes.length;i++) { try { //创建XMLHttpRequest对象 xmlHttp = new ActiveXObject(arrXmlHttpTypes[i]); //如果创建XMLHttpRequest对象成功,则跳出循环 break; } catch(ex) { } } } //判断浏览器是否将XMLHttpRequest作为本地对象实现 else if(window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } } //响应XMLHttpRequest对象状态变化的函数 function httpStateChange() { if (xmlHttp.readyState==4) { if (xmlHttp.status==200 || xmlHttp.status==0) { //获得服务器返回的数据 var userNames = xmlHttp.responseText; var arrUserName = userNames.split(";"); //定义一个变量,用于判断用户名是否已经存在 var bFlag = false; for (i=0;i<arrUserName.length;i++) { if (arrUserName[i]==myForm.myName.value) { bFlag = true; break; } } //查找节点 var node = document.getElementById("myDiv"); //更新数据 if (bFlag) { node.firstChild.nodeValue = "用户名已经存在"; myForm.submitButton.disabled = true; } else { node.firstChild.nodeValue = "用户名不存在,可以使用"; myForm.submitButton.disabled = false; } } } } //校验用户名是否有效 function checkName() { //创建XMLHttpRequest对象 creatXMLHTTP(); if (xmlHttp!=null) { //创建响应XMLHttpRequest对象状态变化的函数 xmlHttp.onreadystatechange = httpStateChange; //创建HTTP请求 xmlHttp.open("get","userName.txt",true); //发送HTTP请求 xmlHttp.send(null); } else { alert("您的浏览器不支持XMLHTTP,请更换浏览器后再进行注册。"); } } --> </script> </head> <body> <p align="center"><b>用户注册</b></p> <form name="myForm"> 用 户 名:<input type="text" name="myName" onblur="checkName()"> <span id="myDiv"> </span><br> 输入登录密码:<input type="password" name="password"><br> 再次输入密码:<input type="password" name="password2"><br> 请 输入邮箱:<input type="text" name="email"><br> 密码查询问题:<input type="text" name="question"><br> 密码查询答案:<input type="text" name="answer"><br> <input type="button" value="提交" name="submitButton" disabled> </form> </body> </html>
效果演示:
说明:
1.onreadystatechange 请求状态改变的事件触发器(readyState变化时会调用此方法)
2.readyState有五中状态:
readyState = 0 未初始化
readyState = 1 表示open方法成功调用
readyState = 2 服务器已经应答客户端请求
readyState = 3 交互中。Http头信息已经接收,响应数据尚未接收。
readyState = 4 数据接收完成。
3.onblur方法:文本框失去焦点时响应的方法,
<span id="myDiv"> </span><br>用于放置校验后的提示信息
4.校验步骤:
创建XMLHttpRequest对象---->创建HTTP请求----->发送HTTP请求------>返回请求-----校验。
本实例是连接txt文本文件实现校验的
连接数据库的校验方式参考:http://blog.csdn.net/javaalpha/article/details/6559176
关于ajax+jsp实现异步校验用户名是否存在的实例(.txt文本)
标签:
原文地址:http://www.cnblogs.com/mys1992/p/4540723.html