您的位置:首页 > Web前端 > JQuery

jquery实现注册时异步检测用户名是否存在

2011-12-18 18:09 549 查看
双休在宿舍,把以前下载的一些教程翻来看看,代码都很简单,适合入门的朋友,而我只是在这里做个记录,分享给大家!

第一步:放置一个Textbox控件,写上onBlur事件,在VS中可能会提示这个事件错误,这是因为Textbox控件没有这个事件,但是这并不妨碍,参数this.value是输入到文本框中的值。

<asp:TextBox ID="txtName" runat="server" onBlur="CheckName(this.value);"></asp:TextBox>
<span id="mesUserName">*</span>


第二步:编写JavaScript代码

也就是onBlur的触发事件,$符号为Jquery的语法,所以,要在<head></head>中引入Jquery文件才可以使用;

这个函数的重点应该是使用$.get 方法,第一个参数为URL(要发生的URL地址)第二个参数为回调函数,什么是回调函数呢?就是执行这个操作以后会触发的事件,回调函数中的(data)参数,是后台一般处理应用程序执行完返回的值,也就是第三步中context.response("false");中的值

&t=" + new Date().valueOf() 这句的意思是参数中带上时间,主要是防止IE中的产生的缓存而造成一般处理应用程序获取name参数错误


function CheckName(userName) {
if ($.trim(userName).length == 0) {
$("#mesUserName").html("请输入用户名");
return;
}
var url = "handler/CheckUserName.ashx?name=" + userName + "&t=" + new Date().valueOf();
$.get(url, function(data) {
if (data == "false") {
$("#mesUserName").html("用户名已存在");
}
else {
$("#mesUserName").html("用户名可用");
}
})
}


第三步:编写一般处理应用程序

新建一个CheckUserName的一般处理应用程序,文件后缀名为ashx

在一般处理应用程序中,reponse输出要使用上下文,所以,应该写成这样子context.response ,request同理,代码其实都很简单,主要是对这个Jquery异步作个记录

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string name = context.Request.QueryString["name"];
if (string.IsNullOrEmpty(name))
{
context.Response.Write("false");
context.Response.End();
}
if (new Shop.DAL.UserDAO().Exists(name))
{
context.Response.Write("false");
context.Response.End();
}
else
{
context.Response.Write("true");
context.Response.End();
}
context.Response.Write("Hello World");
}

public bool IsReusable
{
get
{
return false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐