.net2003+ajax 表单用户名验证无刷新

在Reg.aspx页面的html中放 一个层和一个文本框
<div id="aa">
<asp:TextBox id="txtuser" runat="server" Width="136px"></asp:TextBox>
</div>
<span id="errInfo">请输入用户名</span>
在Reg.aspx页面中写javascript
定义二个变量 、三个函数
var xmlhttp=false;  //放 ActiveXObject的实例
var NewsInfo="";    //放 字符串

function GetXmlHttp()
{
  if(window.ActiveXObject)
   {
     try
       {
  xmlhttp=new ActiveXObject("Msxml2.XMLHTTP.3.0");
       }
     catch(e)
       {
   try
     {
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
     }
   catch(e)
     {
       NewsInfo="服务器忙...";
     }
       }
   }
   return xmlhttp;
}

function CallServer()
{
  GetXmlHttp();
  var struser=document.getElementById("txtuser").value;
  if(struser=="" || struser==null)return;
  var url="CallServer.aspx?user="+escape(struser);
  xmlhttp.onreadystatechange=CallBack;
  xmlhttp.open("post",url,true);
  xmlhttp.send();
}
function CallBack()
{
  if(xmlhttp.readyState==1)
    {
      NewsInfo="Loading...";
    }
  if(xmlhttp.readyState==4)
    {
      var msg=xmlhttp.reponseText;
      var spanid=document.getElementById("errInfo");
      spanid.innerHTML=msg;
    }
}


2在CallServer.aspx页面的page_load中写如下代码
SqlConnection conn=new SqlConnection("server=.;database=test;uid=aa;pwd=aa");
SqlCommand cmd=new SqlCommand();

private void Page_Load(object sender, System.EventArgs e)
{   
  if(!this.IsPostBack)
   {
 this.Bind();
   }
}

private void Bind()
{
 string struser=Request.QueryString["userna"].ToString();
 string strSql="select count(*) from tt where username='"+struser+"'";
 cmd.Connection=conn;
 cmd.CommandText=strSql;
 conn.Open();
 int asd=int.Parse(cmd.ExecuteScalar().ToString());
 if(asd>0)
 {
  Response.Write("用户名重复,请重新选择.");
  Response.End();
 }
 else
 {
  Response.Write("用户名可以使用.");
  Response.End();
 }
}


3在Reg.aspx页面中找到层[id="aa"]在层中写οnmοuseοut="callserver();"
<div id="aa" οnmοuseοut="callserver();">
 <asp:TextBox id="txtuser" runat="server" Width="136px"></asp:TextBox>
</div>

 


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值