表单验证

来源:互联网 发布:java oop是什么意思 编辑:程序博客网 时间:2024/06/04 01:16
<!doctype html>
<html>
    <head>
        <title>表单验证</title>
<!--
以注册为例:
首先我们知道在注册的时候, 填写很多数据, 然后提交到后台, 交给数据库去存储
有个问题 ? 数据库里面本身就有约束, 用户名长度只能6-12字符
数据库约束: check( len(username) between 6 and 12 )
那为什么在前台的页面上还要验证呢 ?
我们不应该把验证的工作交给数据库去弄 , 数据库每天增删改查就已经够多了
JS这样做是为了减轻服务器的压力

在表单中, 有两个非常重要的事件 <form>标签中
1. 表单提交事件 : onsubmit="return boolean"
2. 表单重置事件 : onreset="return boolean"

true :  事件驱动可用
false : 事件驱动不可用
-->
        <style type="text/css">
            *{
                font-size:30px;
            }
            input{
                border:1px solid red;
            }
        </style>
        <script type="text/javascript">
            function checkReset (){
                return confirm("你确定重写表单信息吗?");
            }
            //表单提交时会调用的验证方法
            function checkSubmit (){
                //用户名不能为空
                var name = document.getElementById("name").value;
                if(name=="" || name.length==0){
                    alert("用户名不能为空");
                    return false; //返回
                }/*else{
                    return true;//这个为什么不要写, 因为如果这个写了之后, 用户名满足要求返回true, 表单就提交了, 后面的密码,邮箱就都不会判断了
                }*/
                //密码6-18字符
                var pwd1 = document.getElementById("pwd1").value;
                if(pwd1.length<6 || pwd1.length>18){
                    alert("密码只支持6-18字符");
                    return false;
                }

                //确认密码要和密码一样
                var pwd2 = document.getElementById("pwd2").value;
                if(pwd1!=pwd2){
                    alert("密码不一致");
                    return false;
                }

                //邮箱要有@符号 .符号  @在.的前面
                //邮箱在这里不能很好的写验证, 后面我们用正则表达式来写真正的邮箱验证
                var email = document.getElementById("email").value;
                var a = email.indexOf("@"); //@的下标
                var b = email.indexOf("."); //.的下标
                if(a==-1 || b==-1 || a>b){
                    alert("邮箱格式不正确");
                    return false;
                }
            }
            //服务条款
            function show (){
                var obj = document.getElementById("staus");
                if(obj.checked){ //为true 代表同意了
                    //disabled 为 false 代表 取消禁用
                    document.getElementById("subm").disabled = false;
                }else{
                    //disabled 为 false 代表 开启禁用
                    document.getElementById("subm").disabled = true;
                }
            }
        </script>
    </head>

    <body>
        <form action="String字符串.html" method="post" onreset="return checkReset()" onsubmit="return checkSubmit()">
            用户名: <input type="text" id="name" /><br />
            密&nbsp;&nbsp;码: <input type="text" id="pwd1" /><br />
            确认密码: <input type="text" id="pwd2" /><br />
            邮箱地址: <input type="text" id="email" /><br />
            <input type="checkbox" id="staus" onclick="show()">
            我已经同意许可条款<br />
            <input type="submit" value="注册" disabled="disabled" id="subm">
            <input type="reset" value="重写">
        </form>
    </body>
</html>

0 0
原创粉丝点击