JS校验与最终登陆界面功能完整示例


Posted in Javascript onJanuary 13, 2020

本文实例讲述了JS校验与最终登陆界面功能。分享给大家供大家参考,具体如下:

<html>
    <head>
        <title>注册页面</title>
        <meta charset="UTF-8"/>
        <script type="text/javascript">
//            校验用户名
            function checkUname(){
//                获取用户名对象
                var uname=document.getElementById("uname").value;
//                创建校验正则表达式判断条件
                var reg=/^[\u4e00-\u9fa5]{2,4}$/;     //其中前面的一部分是汉字的正则表达式,后面的是汉字的合法范围,(第一次因为,正则表达式写错了)
//                获取后面的提示字
                var nameSpan=document.getElementById("nameSpan"); //span是一个没有特殊含义的自定义标签用来辅助设计
//                进行校验
                if(uname=="" || uname ==null){
                    nameSpan.innerHTML="用户名不能为空";
                    nameSpan.style.color="red";
                    return false;
                }else if(reg.test(uname)){
                    nameSpan.innerHTML="用户名合法";
                    nameSpan.style.color="green";
                    return true;
                }else{
                    nameSpan.innerHTML="用户名不合法";
                    nameSpan.style.color="red";
                    return false;
                }
            }
            function checkPassword(){
//                获取用户名对象
                var password1=document.getElementById("pws1").value; //我们是通过对象的value值(文本输入框的内容)进行判断的
//                创建校验正则表达式判断条件
                var reg=/^[a-z]\w{4,8}$/;     //首位为字母,后面为数字4到8位 ()
//                获取后面的提示字
                var pwsSpan=document.getElementById("passwordSpan"); //span是一个没有特殊含义的自定义标签用来辅助设计
//                进行校验
                if(password1=="" || password1 ==null){
                    pwsSpan.innerHTML="*密码不能为空";
                    pwsSpan.style.color="red";
                    return false;
                }else if(reg.test(password1)){
                    pwsSpan.innerHTML="*密码合法";
                    pwsSpan.style.color="green";
                    return true;
                }else{
                    pwsSpan.innerHTML="*密码不合法";
                    pwsSpan.style.color="red";
                    return false;
                }
//                return password1.value;
                checkPassworded();   //在失去焦点的时候(调用该函数时,也进行确认密码的校验),如果没有这个操作,当重新修改用户密码时,其不会在进行确认密码(即修改密码后即使不相同也不会报错)
            }
            //            校验确定密码
            function checkPassworded(){
//            获取确认密码对象
                var password2=document.getElementById("pws2").value;
//            获取第一次密码对象,以进行比较
                var password1=document.getElementById("pws1").value;
//                获取提示语的对象
                var pwslSpan=document.getElementById("passwordlSpan");
//                reg=checkPassword();
//       if(reg="" || reg=null)         //没能实现
                if(password2=="" || password2==null){   //null就是字符串类型,表示空字符串
                    pwslSpan.innerHTML="*确认密码不能为空";
                    pwslSpan.style.color="red";
                    return false;
                }else if(password1 == password2){      
                    pwslSpan.innerHTML="*两次密码相同";
                    pwslSpan.style.color="green";
                    return true;
                }else{
                    pwslSpan.innerHTML="*两次密码不相同";
                    pwslSpan.style.color="red";
                    return false;
                }
            }
//--------------------------------------------------------------------------------------------------------
//    考虑到有很多的校验方法都用到相同的方法和结构,所以我们在此对其进行封装
            function checkAll(id,reg){      //封装的基本思想:相同的直接写入,不同的利用参数转换
                //接收传递的对象
                var inp=document.getElementById(id);   //我们传的参数是带双引号的
                var ie=inp.value;           //我们通过对象的值进行判断
                var alt=inp.alt;             //通过对象来获得其对应的一些值
                //接收传递的提示框对象
                var span=document.getElementById(id+"Span");
                if(ie=="" || ie==null){
                    span.innerHTML=alt+"不能为空";
                    span.style.color="red";
                    return false;
                }else if(reg.test(ie)){
                    span.innerHTML=alt+"合法";
                    span.style.color="green";
                    return true;
                }else{
                    span.innerHTML=alt+"不合法";
                    span.style.color="red";
                    return false;
                }
            }
//            手机号的校验
            function checkPhone(){
                return checkAll("phone",/^1[3,4,5,7,8]\d{9}$/);
            }
//            邮箱的校验
            function checkMail(){
                return checkAll("mail",/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+$/);
            }
//            添加验证码
            function checkCode(){
//                获取验证码填写对象
                var code=document.getElementById("code1");
//                获取验证显示对象
                var codeSpan=document.getElementById("codeSpan");
                var tag=Math.floor(Math.random()*9000+1000);   //产生四位的整数,Math.floor表示向下取整,
                codeSpan.innerHTML=tag;
            }
//            校验验证码
            function checkCoded(){
//                获取输入的验证码对象
                var code2=document.getElementById("code1").value;
//                 获取显示的验证码对象,以进行比较
                var codeSpan1=document.getElementById("codeSpan");
                var code1=codeSpan1.innerHTML;       //通过对象利用其innerHTML属性进行获得,其利用value不正确,没进一步探索
//                获取提示语的对象
                var codeSpan2=document.getElementById("codeSpan2");
//                alert(code1);       //得到的值是undefined
//                alert(code2);
                if(code2=="" || code2==null){   
                    codeSpan2.innerHTML="*验证码不能为空";
                    codeSpan2.style.color="red";
                    return false;
                }else if(code1 == code2){      
                    codeSpan2.innerHTML="*验证码相同";
                    codeSpan2.style.color="green";
                    return true;
                }else{
                    codeSpan2.innerHTML="*验证码不相同";
                    codeSpan2.style.color="red";
                    return false;
                }
            }
//            校验选择框
            function checkSelect(){
//                获取选择框对象
                var select=document.getElementById("select").value;
//                获取选择框提示对象
                var selectSpan=document.getElementById("selectSpan");
//                selectSpan.style.fontSize="15px";
                if(select==0){
                    selectSpan.innerHTML="地址选择不能为空";
                    selectSpan.style.color="red";
                    return false;
                }else{
                    selectSpan.innerHTML=select;
                    selectSpan.style.color="green";
                    return true;
                }
            }
//            检测多选框
            function checkFav(){
//                获取多选框对象
                var fav=document.getElementsByName("fav");
//                获取多选框提示对象
                var favSpan=document.getElementById("favSpan");
                favSpan.style.fontSize="10px";
                for(var i=0;i<fav.length;i++){
                    if(fav[i].checked){ //fav[i]是一个对象,fav[i].checked是一个值
                        favSpan.innerHTML="选择成功";
                        favSpan.style.color="green";
                        return true;       //选择成功后直接返回
                    }
                }                 //在整个循环结束后都没有进行选择,才进行不符合提示
                favSpan.innerHTML="至少选择一个";
                favSpan.style.color="red";
                return false;
            }
            function checkAgree(){
//                当同意公司协议的时候才能进行提交操作
                document.getElementById("pop").disabled=!document.getElementById("agree").checked;
//                当同意公司协议的时候,对应的submit的对应值是true,所以我们利用!把disabled的值赋值为false
            }
            function checkSub(){
//                校验是否可以提交
//                对于所有的校验函数,只要有一个不满足条件,就不能提交
                checkUname();
                checkPassword();
                checkPassworded();
                checkPhone();
                checkMail();
                checkCoded();
                checkSelect();
                checkFav();        //当所有值都为true的时候才能进行提交,所以对应的函数有返回值,不满足时返回false,满足时返回true
                return checkUname()&&checkPassword()&&checkPassworded()&&checkPhone()&&checkMail()&&checkCoded()&&checkSelect()&&checkFav();
            }
        </script>
        <style type="text/css">
            tr,td,table{
                background-color: transparent;
                border 0px;
            }
            span{
                font-size: 10px;
            }
            #codeSpan{
              width: 30px;
              height: 25px;
                font-size: 20px;
                color: black;
                background-size: 100%,100%;      /*后面三行是使背景图片占满整个区域*/
                background-repeat: no-repeat;
                background-image: url(../img/0.jpg);
            }
            #selectSpan{
                font-size: 15px;
            }
            #showdiv{
                width: 30%;
                height: 100%;
                background-image: url(../img/5.jpg);
                background-size: cover;
                background-repeat: no-repeat;
                margin-left: 33%;
            }
            input,select,[type=checkbox],#bigText{
                background-color: transparent;   /* 把一些边框背景变为透明的以显示背景*/
            }
        </style>
    </head>
    <body onload="checkCode(),checkSelect(),checkFav()">
        <form action="#" action="get">
            <div align="center" id="showdiv">
            <table border="1px" cellpadding="5px" cellspacing="0px">
                <tr height="29px">
                    <td width="80px">姓名</td>
                    <td width="180px">
                        <input type="text" name="uname" value="" id="uname" onblur="checkUname()"/>
                        <span id="nameSpan"></span>  <!-- 以焦点的有无来进行判断-->
                    </td>
                </tr>
                <tr height="29px">
                    <td width="80px">邮箱</td>
                    <td width="180px">
                        <input type="text" name="mail" value="" id="mail" alt="邮箱" onblur="checkMail()"/>
                        <span id="mailSpan"></span>
                    </td>
                </tr>
                <tr height="29px">
                    <td width="80px">手机号</td>
                    <td width="180px">      <!--查了很长时间的错误,就因为调用的函数没有用""包含,""在外面了-->
                        <input type="text" name="phone" value="" id="phone" alt="手机号" onblur="checkPhone()"/>
                        <span id="phoneSpan"></span>  
                    </td>
                </tr>
                <tr height="31px">
                    <td width="80px">密码</td>
                    <td width="180px">
                        <input type="password" name="psw" value="" id="pws1" onblur="checkPassword()"/>
                        <span id="passwordSpan"></span>
                    </td>
                </tr>
                <tr height="29px">
                    <td width="80px">确认密码</td>
                    <td width="180px">
                        <input type="password" name="psw2" value="" id="pws2" onblur="checkPassworded()"/>
                        <span id="passwordlSpan"></span>
                    </td>
                </tr>
                <tr height="31px">
                    <td>性别</td>
                    <td>
                        男<input type="radio" name="sex" value="1" checked="checked" /> 女<input type="radio" name="sex" value="0" />
                    </td>
                </tr>
                <tr height="31px">
                    <td>所在地</td>
                    <td>
                        <select name="" id="select" onchange="checkSelect()">
                            <option value="0"></option>
                            <option value="山东">山东</option>
                            <option value="北京">北京</option>
                            <option value="河南">河南</option>
                        </select>
                        <span id="selectSpan"></span>
                    </td>
                </tr>
                <tr height="31px">
                    <td>爱好</td>
                    <td>               <!--我们对每一个都进行事件触发检验,因为每个选项都是平等的-->
                        动漫<input type="checkbox" name="fav" id="fav" onclick="checkFav()" value="animation"/>
                        游戏<input type="checkbox" name="fav" id="fav" onclick="checkFav()" value="game" />
                        打球<input type="checkbox" name="fav" id="fav" onclick="checkFav()" value="ball" />
                        <span id="favSpan"></span>
                    </td>
                </tr>
                <tr height="31px">
                    <td>个人简介</td>
                    <td>
                        <textarea name="introduction" rows="7px" cols="25px" id="bigText"></textarea>
                    </td>
                </tr>
                <tr height="31px">
                    <td width="80px">验证码</td>
                    <td width="180px">
                        <input type="password" name="code" value="" id="code1" onblur="checkCoded()"/>   
                        <span id="codeSpan" onclick="checkCode()"></span><br />
                        <span id="codeSpan2" onclick="checkCoded()"></span>
                        <!--<a href=""><span id=" rel="external nofollow" codeSpan" onclick="checkCode()"></span></a>-->  <!-- 行内显示一定的距离,可以直接用 -->
                    </td>   <!--可以用a标签把鼠标的图标变成一个小手,但是会触发超链接事件,感觉不提倡-->
                </tr>
                <tr height="31px">
                    <td colspan="2" align="center">
                        <input type="checkbox" name="select" id="agree" value="1" onclick="checkAgree()" />是否同意我们的协议
                        <!--<input type="radio" name="select" id="agree" value="1" />是否同意我们的协议-->
                        <!--radio是互斥选择,当只有一个的时候,选中了,就取消不了了,要进行一些处理-->
                    </td>
                </tr>
                <tr height="31px">
                    <td colspan="2" align="center">
                        <input type="submit" value="注册" id="pop" disabled="true" onclick="checkSub()"/>
                        <!--我们可不是所有的情况都可以进行submit-->
                    </td>
                </tr>
            </table>
            </div>
        </form>
    </body>
</html>

运行效果:

JS校验与最终登陆界面功能完整示例

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

Javascript 相关文章推荐
document.compatMode介绍
May 21 Javascript
jQuery 处理表单元素的代码
Feb 15 Javascript
基于js实现投票的实例代码
Aug 04 Javascript
Bootstrap作品展示站点实战项目2
Oct 14 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
Dec 25 Javascript
jQuery实现弹窗居中效果类似alert()
Feb 27 Javascript
Angular4实现图片上传预览路径不安全的问题解决
Dec 25 Javascript
jquery写出PC端轮播图实例
Jan 26 jQuery
详解关于vue2.0工程发布上线操作步骤
Sep 27 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
Dec 20 Javascript
简单说说如何使用vue-router插件的方法
Apr 08 Javascript
使用Karma做vue组件单元测试的实现
Jan 16 Javascript
vue+vant实现商品列表批量倒计时功能
Jan 13 #Javascript
JS表格的动态操作完整示例
Jan 13 #Javascript
JavaScript实现模态对话框实例
Jan 13 #Javascript
JS动态图片的实现方法完整示例
Jan 13 #Javascript
js实现拖动缓动效果
Jan 13 #Javascript
Vue.js中的高级面试题及答案
Jan 13 #Javascript
深入理解redux之compose的具体应用
Jan 12 #Javascript
You might like
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
php中的一些数组排序方法分享
2012/07/20 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
动态添加js事件实现代码
2009/03/12 Javascript
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
js打开新窗口方法整理
2014/02/17 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
jQuery.Validate表单验证插件的使用示例详解
2017/01/04 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
jQuery实现简单弹窗遮罩效果
2017/02/27 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
2018/08/24 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
JS左右无缝轮播功能完整实例
2019/05/16 Javascript
vue框架制作购物车小球动画效果实例代码
2019/09/26 Javascript
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
python实现拼接图片
2020/03/23 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
JSF如何进行表格处理及取值
2012/08/06 面试题
信息管理员岗位职责
2013/12/01 职场文书
餐饮部总监岗位职责范文
2014/02/13 职场文书
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书
施工安全协议书范本
2014/09/26 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
Go语言实现Snowflake雪花算法
2021/06/08 Golang