表单验证(js不使用正则表达式)

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        #tip {

            font-size: 12px;

        }

    </style>

</head>

<body>

    <form action="">

        <div id="tip"></div>

        <p>用户名:<input type="text" name="user" id="user"></p>

        <p>&emsp;密码:<input type="password" name="pwd" id="pwd"></p>

        <p>名字:<input type="text" name="xm" id="xm"></p>

        <input type="submit" value="登录" id="btn">

    </form>

</body>

<script>

    var oIpt1 = document.getElementById("user");

    var oIpt2 = document.getElementById("pwd");

    var oIpt3 = document.getElementById("xm");

    var oIpt4 = document.getElementById("btn");

    var oDiv = document.getElementById("tip");

    var uFlag = false, pFlag = false, nFlag = false;

    //用户名不能为空

    oIpt1.onblur = function () {

        var val = this.value;//获取用户名输入框中的值

        // if(val === ""){

        //     alert("用户名不能为空")

        // }

        if (val.length === 0) {

            oDiv.innerHTML = "用户名不能为空";

            oDiv.style.color = "red";

            uFlag = false;

        } else {

            oDiv.innerHTML = "";

            uFlag = true;

        }

        console.log("uFlag", uFlag);

    }


 

    //密码长度至少6位

    oIpt2.onblur = function () {

        var val = this.value;

        if (val.length < 6) {

            oDiv.innerHTML = "密码输入有误";

            oDiv.style.color = "red";

            pFlag = false;

        } else {

            oDiv.innerHTML = "";

            pFlag = true;

        }

        console.log("pFlag", pFlag);

    }

    //名字输入不能为空并且不能含有数字    "ab1b2"  isNaN()

    oIpt3.onblur = function () {

        var val = this.value;

        if (val.length === 0) {

            oDiv.innerHTML = "名字不能为空";

            nFlag = false;

        } else {

            for (var i = 0; i < val.length; i++) {

                // val[i]   val.charAt(i)  val.substr(i,1)  val.substring(i,i+1)

                var c = val.charAt(i);

                if (!isNaN(c)) {

                    alert("名字输入不能含有数字");

                    nFlag = false;

                    break;

                }

                nFlag = true;

            }

        }

        console.log("nFlag", nFlag);

    }


 

    oIpt4.onclick = function () {

        // if(uFlag && pFlag && nFlag){

        // }else{

        // alert("请重新检查表单");

        // return false;//阻止默认行为  阻止提交行为

        // }

        // if (!uFlag || !pFlag) {

        if (uFlag === false || pFlag === false || nFlag === false) {

            alert("请重新检查表单");

            return false;//阻止默认行为  阻止提交行为

        }

    }

</script>

</html>


 

<!-- <!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        #tip {

            font-size: 12px;

        }

    </style>

</head>

<body>

    <form action="">

        <div id="tip"></div>

        <p>用户名:<input type="text" name="user" id="user"></p>

        <p>&emsp;密码:<input type="password" name="pwd" id="pwd"></p>

        <p>名字:<input type="text" name="xm" id="xm"></p>

        <input type="submit" value="登录" id="btn">

    </form>

</body>

<script>

    var oIpt1 = document.getElementById("user");

    var oIpt2 = document.getElementById("pwd");

    var oIpt3 = document.getElementById("xm");

    var oIpt4 = document.getElementById("btn");

    var oDiv = document.getElementById("tip");

    oIpt4.onclick = function () {

        var uv = oIpt1.value;//获取用户名输入值

        var pv = oIpt2.value;//获取密码输入值

        //用户名不能为空

        if (uv === "") {

            oDiv.innerHTML = "用户名不能为空";

            return false;//阻止默认行为

        }

        // 密码长度至少6位

        if (pv.length < 6) {

            oDiv.innerHTML = "密码长度不能少于6位";

            return false;

        }

    }

</script>

</html> -->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值