博客列表 >0515-ajax表单

0515-ajax表单

我的博客
我的博客原创
2019年05月16日 13:20:24721浏览

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ajax 制作登陆表单</title>
</head>
<body>
<h3>用户登录</h3>
<form name="login" method="post" onsubmit="return true">   <!--onsubmit="return false"点击提交按钮失效-->
    <p>
<!--        邮箱-->
        <label for="email">邮箱:</label>
        <input type="email" id="email" name="email" placeholder="example@gmail.com">
        <span style="color: red" id="error_email">*</span>
    </p>
    <p>
<!--        密码-->
        <label for="password">密码: </label>
        <input type="password" id="password" name="password" placeholder="不少于6位">
        <span style="color: red" id="error_psw">*</span>
    </p>
    <p>
<!--        提交按钮-->
        <button id="submit" type="button">提交</button>
        <span id="result"></span>
    </p>
</form>
<script>
    //1、获取需要的元素
    var form1=document.forms.namedItem('login');
    var email=document.getElementsByName('email')[0];
    var err_email=document.getElementById('error_email');
    var password=document.getElementById('password');
    var err_password=document.getElementById('error_psw');
    var submit1=document.getElementById('submit');
    var result=document.getElementById('result');

    //2、给按钮添加点击事件,obj为主函数
    submit1.addEventListener('click',obj,false);
            //主函数只起调用功能

    function obj() {
            //(1)非空验证
       var user = checked(email,err_email,password,err_password);
            //(2)ajax验证,把email,password放在uesr对象中进行ajax判断,下边是三元运算符,如果user为真,就运行ajax,否则运行false
         user ? ajax(user,result) : false;
    }
            //(1)非空验证,用 .length !==0 来验证
    function checked(new_email,err_email,new_password,err_password) {
        var email1 = new_email.value.trim();
        var password1 = new_password.value.trim();

        //慎用return 用错了直接就不执行下一步了。没有判断条件的不能用return。else 下不返回数值,返回后边的就不运行了
        if (email1.length === 0) {
            err_email.innerText = '邮箱不能为空';
            email.focus();
            return false;

        } else{
            err_email.innerText = '√';
            err_email.style.color='green';

        }


        if (password1.length === 0) {
            err_password.innerText = '密码不能为空';
            password.focus();
            return false;

        } else {
            err_password.innerText = '√';
            err_password.style.color='green';
        }
        return{
            email:email1,    //email:email1  前边是全局对象:后边是局部对象。
            password:password1
        }

    }

function ajax(user,result) {

        // 1、创建对象
        var resquest = new XMLHttpRequest();  //大写 X
        // 2、监听响应状态
        resquest.onreadystatechange=function(){
           if(resquest.readyState===4){
            console.log(resquest.responseText);

             result.innerHTML = resquest.responseText;

           }

            return false;

        };
        // 3、POST初始化请求文件
    resquest.open('post','admin/check.php',false);
        // 4、POST头文件
    resquest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

        // 5、POST 发送请求
    var data = 'email=' + user.email +'&password=' + user.password;
    resquest.send(data);
    
}


    // input: 当用户修改错误数据时, 提示信息应该消失
    form1.email.addEventListener('input', function (){
        err_email.innerText = ''; // 清除邮箱错误提示
        result.innerText = '';  // 清除服务器返回的验证提示
    }, false);
    form1.password.addEventListener('input', function (){
        err_password.innerText = '';  // 清除密码错误提示
        result.innerText = '';  // 清除服务器返回的验证提示
    }, false);


</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议