注册环节的AJAX验证———班级管理系统心得
班级管理系统在注册环节有一个动态的验证是否被注册,当用户的鼠标的焦点离开对应的对话框和就会触发前台的一个JS函数,此函数通过创建一个xmlHttp对象,通过这个对象的onreadystatechange属性判断连接的状态,和open方法来获取数据页面的值,open方法的参数为("GET", "DataRegist.aspx?UserName="+UserName, true);
现将源码贴出,希望各位大牛指错
<td align="right"> <p>用户名:</p> </td> <td align="left"> <asp:TextBox ID="TxtUserName" runat="server" onblur="javascript:startRequest();" Width="140px" ></asp:TextBox> <div id="default" ></div> </td>
js代码:代码
var xmlHttp;
var response_txt;
//创建对象
function createXMLHttpRequest()
{
if (window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
//连接
function startRequest()
{
createXMLHttpRequest();
var UserName=document.getElementById("TxtUserName").value;
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET", "DataRegist.aspx?UserName="+UserName, true);
xmlHttp.send(null);
}
function handleStateChange()
{
var obj=document.getElementById("default");
if(xmlHttp.readyState ==4)
{
if(xmlHttp.status == 200)
{
response_txt=xmlHttp.responseText;
if(response_txt.indexOf("a")!=-1)
{
//用于显示验证是否通过的详细信息加上刚刚所定义正确时的样式
obj.className="Right";
obj.innerHTML='该会员名可以注册!';
}
else
{
//用于显示验证是否通过的详细信息加上刚刚所定义错误时的样式
obj.className="Error";
obj.innerHTML='该会员名已经被注册!';
}
}
}
}
数据页的代码
public partial class DataRegist : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string UserName = Request.QueryString["UserName"].ToString(); string SqlSelect = "select * from TblLoginUser where userName='" + UserName + "'"; DataTable dtSelect = DBLink.GetDataTable(SqlSelect); if(dtSelect.Rows.Count==0) { Response.Write("a"); } else { Response.Write("unvailable"); } } }