班级管理系统在注册环节有一个动态的验证是否被注册,当用户的鼠标的焦点离开对应的对话框和就会触发前台的一个JS函数,此函数通过创建一个xmlHttp对象,通过这个对象的onreadystatechange属性判断连接的状态,和open方法来获取数据页面的值,open方法的参数为("GET", "DataRegist.aspx?UserName="+UserName, true);
现将源码贴出,希望各位大牛指错
1 | <td align= "right" > |
2 | <p>用户名:</p> </td> |
3 | <td align= "left" > |
4 | <asp:TextBox ID= "TxtUserName" runat= "server" onblur= "javascript:startRequest();" Width= "140px" ></asp:TextBox> |
5 | <div id= "default" ></div> |
6 | </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 = ' 该会员名已经被注册! ' ;
}
}
}
}
数据页的代码
01 | public partial class DataRegist : System.Web.UI.Page |
02 | { |
03 | protected void Page_Load( object sender, EventArgs e) |
04 | { |
05 | string UserName = Request.QueryString[ "UserName" ].ToString(); |
06 | string SqlSelect = "select * from TblLoginUser where userName='" + UserName + "'" ; |
07 | DataTable dtSelect = DBLink.GetDataTable(SqlSelect); |
08 | |
09 | |
10 | if (dtSelect.Rows.Count==0) |
11 | { |
12 | |
13 | Response.Write( "a" ); |
14 | |
15 | } |
16 | else |
17 | { |
18 | Response.Write( "unvailable" ); |
19 | } |
20 | |
21 | } |
22 | } |