Ajax代码学习(一)

本篇幅为实现注册页面无需提交按钮自动判断用户名是否存在

前言


这里我使用的是php环境,进行学习

php环境搭建可以直接使用phpstudy

ajax原理部分,可取隔壁看原理

代码实现


首先我们创建一个页面表单,用来输入数据,由于这里是用ajax实现的用户名判断,form表单中可以不设置action和method属性值

代码如下

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <title>
        验证表单
    </title>
    <body>
        <form>
            <table>
                <tr>
                    <td>用户名:</td>
                    <td>
                        <input type="text" name="test" id="user">
                    </td>
                    <td>
                        <span id="span"></span>
                    </td>
                </tr>
                <tr>
                    <td>密码:</td>
                    <td>
                        <input type="test" name="pwd" id="pass">
                    </td>
                    <td><span></span></td>
                </tr>
           </table>
    </form>
    </body>
</html>

后端代码如下

<?php
$test = $_POST['user'];
if($test == 'admin'){
    echo 'no';
}else{
    echo 'ok';
}
?>

可以正常输出,如下图

ajax实现,使用js写法

    <script>
        window.onload=function(){  ///js的入口函数
            //第一步获取上面的两个文本框
            var username = this.document.getElementById("user");//这里可以直接.value获取文本框的值
            var pass = this.document.getElementById("pass");//但不获取是为了给文本框做视界,以便于鼠标离开文本框就触发

            //通过onblur函数做视界
            username.onblur=function(){
                var userValue = username.value;//获取文本框的值
                console.log(userValue)///查看是否获取到了文本框的值

                //兼容性代码,在ie6版本以下是无法使用XMLHttpRequest的,所以
                var xhr = null;
                if(window.XMLHttpRequest){
                    xhr = new XMLHttpRequest();
                }else{
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                }

                //准备发送
                xhr.open("post","http://127.0.0.1/test/ajax/1.php",true);//这里的发送方式取决于后台,true待变异步发送
                xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=UTF-8");// 向请求添加 HTTP 头,POST如果有数据一定加加!!!!
                var user = "user="+userValue;//定义发送内容
                console.log(user)
                xhr.send(user);

                //通过回调函数onreadystatechange进行数据回调
                xhr.onreadystatechange=function(){
                    if (xhr.readyState == 4 && xhr.status == 200){//说明请求完成/响应200,说明请求成功
                        var request = xhr.responseText;//获取响应的内容
                        //console.log(request);
                        if (request == "ok"){
                            document.getElementById("span").innerText="用户名可以使用";//回显到span标签
                        }else{
                            document.getElementById("span").innerText="用户名已存在";
                        }
                    }
                }

            }

        }
    </script>

实现效果图,如下

就这样吧,代码解释在注释里面都写了

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值