asp.net验证用户名是否已经存在 收藏
时间:2010-09-28 来源:Jiiao
因为项目要实现添加用户的功能,所以想到要检测用户名是否存在。一开始想到放个按钮检测,感觉不太好。
因为后来到网上一搜发现大家爱都用ajax实现的。
因为我是一个小菜鸟,所以还不懂得ajax这项技术。。。伤心啊。。。
从网上看到很多资料但是我尝试了下没有搞出来。所以只好老老实实看看ajax到底怎么回事。
然后从http://q.sohu.com/forum/5/topic/1486059看到了《ajax从入门到精通》,仔细看完之后终于搞出来了。。。
不过参考了http://blog.csdn.net/justmuch/archive/2008/03/08/2158935.aspx的css样式。。呵呵
废话不扯了。把代码贴出来留做备忘。。。
首先check.js里面的代码
//实例化 XMLHttpRquest对象
var http_request=false;
function createRequest()
{
try//IE
{
http_request=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e2)
{
http_request = false;
}
}
if (!http_request && typeof XMLHttpRequest != 'undefined') //FireFox
{
http_request = new XMLHttpRequest();
}
}
function callserver()
{
createRequest();
var strText=document.getElementById("txt1").value;
if(strText==""||strText==null)
return ;
var url="check_id.aspx?strtxt="+escape(strText);
http_request.onreadystatechange=updatepage;
http_request.open("GET",url,true);
http_request.send(null);
}
function updatepage()
{
var obj=document.getElementById("div1");
if(http_request.readyState == 4)
{
if(http_request.status==200)
{
var response=http_request.responseText;
if(response.indexOf("regok")!=-1)
{
//验证通过
obj.className="Right";
obj.innerHTML='该会员名可以注册。';
}
else
{
//验证未通过
obj.className="Error";
obj.innerHTML='该会员名已经被注册。';
}
}
}
else
{ //异步传输失败
obj.innerHTML='该会员未能检测,可以尝试注册。';
}
}
在Default.aspx页面HTML代码
<table>
<tr>
<td>
<asp:Label ID="lbl" runat="server" Text="填写用户名" ForeColor="Red">
</asp:Label>
</td>
<td>
<asp:TextBox ID="txt1" onblur="callserver()" runat="server">
</asp:TextBox>
</td>
<td>
<div id="div1">
</div>
</td>
</tr>
</table>
放在此中的CSS
<style type="text/css">
.Error{ border:1px solid #A2553B;background-color:#FEF1E1;width:200px;float:left;line-margin-left:24px;color:#4F4F4F;text-indent:12px;}
.Right{ border:1px solid #419041;background-color:#EDFCE7;width:2000px;float:left;line-margin-left:24px;color:#4F4F4F;text-indent:12px;}
</style>
新建一个check.aspx记住只保留下面一句,其他的html语句全部删掉
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="check.aspx.cs" Inherits="check" %>
按F7进入后代页面
键入如下代码:
protected void Page_Load(object sender, EventArgs e)
{
string name = Request.QueryString["strtxt"].ToString();
if (name == "123")
{
//只有123可以注册。。。
Response.Write("regok");
}
else
{
Response.Write("error");
}
}
这样就可以了。。。呵呵。。。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/helloxiaoyu/archive/2008/04/17/2301094.aspx