ajax异步校验用户名

AJAX异步校验用户名

AJAX是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
在web开发中,经常会遇到需要发送局部请求,比如说验证用户名是否存在,获取手机验证码等,
单纯的验证用户名是否存在没有必要提交整个页面,这样有助于提升响应速度。


这里写图片描述


前端代码

    <script type="text/javascript">
        function getXhr() {
            var xhr = null;
            if(window.XMLHttpRequest){
                xhr = new XMLHttpRequest();
            }else {
                xhr = new ActiveXObject("Microsoft.XMLHttp");
            }
            return xhr;
        }
        function checkNameUnique() {
            var xhr = getXhr();
            xhr.onreadystatechange = function () {
                if(xhr.readyState == 4&&xhr.status == 200){
                    document.getElementById("username_btn").value =xhr.responseText;
                }
            };
            xhr.open("post","/checkNameUnique",true);
            xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
            document.getElementById("username_btn").value = "正在验证";
            var uname = document.getElementById("username_register").value;
            var username = (uname=='用户名')?'':uname;
            xhr.send("uname="+username);
        }
    <script>
     ......
    <h2>注册  </h2>
    <form action="/register" method="post">
        <div>
            <input class="username_register" name="username_register" id="username_register" value="用户名" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = '用户名';}">
            <input class="btn" type="button" id="username_btn" value="验证用户名" onclick="checkNameUnique()"/>
        </div>
        <input classs="tel" name="usrtel" value="手机号" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = '手机号';}">
        <div>
            <input class="content3" name="code" value="验证码" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = '验证码';}"/>
            <button class="btn" onclick="false;" >获取验证码</button>
        </div>
        <input class="pwd_register" name="psw_register" value="密码" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = '密码';}">
        <input type="submit" class="register" value="注册">
    </form>

后端代码

@RequestMapping(path = {"/checkNameUnique"},method = {RequestMethod.POST})
    @ResponseBody
    private String checkNameUnique(@RequestParam("uname") String username){
        return userService.checkUsername(username);
    }

调试的时候出现的问题

在调试的时候曾把xhr.open和xhr.setRequestHeader这两个函数顺序写反了,效果一直就出不来。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值