加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

通过ajax方式实现用户名存在性检查

发布时间:2020-12-16 01:46:37 所属栏目:百科 来源:网络整理
导读:对于拥有会员功能的网站,尤其是会员登录后可以留言或评论的网站,一般要求不能有两个或两个以上相同的用户名存在。因此,在用户注册的时就需要对用户名是否已经被注册进行检查防止出现相同的用户名。下面是我实现这种功能的一种解决方案。 1、方案原理:利

对于拥有会员功能的网站,尤其是会员登录后可以留言或评论的网站,一般要求不能有两个或两个以上相同的用户名存在。因此,在用户注册的时就需要对用户名是否已经被注册进行检查防止出现相同的用户名。下面是我实现这种功能的一种解决方案。

1、方案原理:利用ajax的异步请求不刷新正在注册的页面向后端发送请求,后端对请求数据进行处理返回用户名是否已经存在的结果。

2、方案详情

(1)html代码部分,运用了input标签的onblur事件调用相应的js函数。

        <span style="font-size:14px;"><div class="pull-left">
            <input id="username" name="username" type="text" class="form-control isUsername" onblur = "CheckUserName()">
        </div></span>

(2)Jquery部分,采用了ajax技术
        <span style="font-size:14px;">function CheckUserName()
        {
            var userName = $("#username").val();
            var Option =
            {
                url: encodeURI('/Handler/AuthAccounts.ashx?action=checkusername&userName='+userName),type: "get",dataType: 'text',cache: false,//设置为 false 将不会从浏览器缓存中加载请求信息。
                async: true,//(默认: true),所有请求均为异步请求。发送同步请求,请将此选项设置为 false。同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
                timeout: 150000,//设置请求超时时间(毫秒)。此设置将覆盖全局设置。
                error: function ()
                {
                },success: function (data,textStatus)
                {
                    if (data == null || data == undefined)
                    {
                        return false;
                    }
                    jsondata = eval('(' + data + ')');

                    if (jsondata.state == "success")
                    {
                        alert(jsondata.message);
                        return false;
                    }
                },beforeSend: function ()     //检查之前,是否通过格式验证
                {
                    var text = $("#username-error").text();
                    if (text != ""&&text!=undefined&&text!=null)
                    {
                        return false;
                    }
                }
            };
            jQuery.ajax(Option);
            return false;
        }</span>

(3)后端一般应用处理程序
       <span style="font-size:14px;"> /// <summary>
        /// 检查用户名是否已经存在
        /// </summary>
        /// <param name="context"></param>
        protected void CheckUserName(string userName)
        {
            CommonStruct commonStruct = new CommonStruct();
            
            if (userName != "" && userName!=string.Empty)
            {
                QingCi.Model.ExecResultData result = QingCi.BLL.AuthAccounts.CheckUserNameExist(userName);
                if (result.State == stateSuccess)
                {
                    commonStruct.state = stateSuccess;
                    commonStruct.message = result.Message;
                   HttpContext.Current.Response.Write(serializer.Serialize(commonStruct));
                   HttpContext.Current.Response.End();
                }
            }
        }</span>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读