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 相关文章推荐
JavaScript中的其他对象
Jan 16 Javascript
JavaScript中的稀疏数组与密集数组[译]
Sep 17 Javascript
JavaScript获取Url里的参数
Dec 18 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
May 07 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
Jun 09 Javascript
JavaScript判断undefined类型的正确方法
Jun 30 Javascript
jquery trigger函数执行两次的解决方法
Feb 29 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
Aug 31 Javascript
react写一个select组件的实现代码
Apr 03 Javascript
详解JavaScript的变量
Apr 04 Javascript
Promise扫盲贴
Jun 24 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
Sep 10 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
php escape URL编码
2008/12/10 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
PHP递归调用的小技巧讲解
2013/02/19 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
用nodejs写的一个简单项目打包工具
2013/05/11 NodeJs
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
2014/08/16 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
javascript 中关于array的常用方法详解
2017/05/05 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
bootstrap fileinput实现文件上传功能
2017/08/23 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
2018/01/31 jQuery
Vue仿今日头条实例详解
2018/02/06 Javascript
jQuery length 和 size()区别总结
2018/04/26 jQuery
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
解决nuxt页面中mounted、created、watch执行两遍的问题
2020/11/05 Javascript
JavaScript实现弹出窗口效果
2020/12/09 Javascript
Python实现求两个csv文件交集的方法
2017/09/06 Python
python读写csv文件实例代码
2019/07/05 Python
Django中间件基础用法详解
2019/07/18 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
如何基于Python批量下载音乐
2019/11/11 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
艺术用品:Arteza
2018/11/25 全球购物
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
作为网站管理者应当如何防范XSS
2014/08/16 面试题
服装创业计划书范文
2014/02/05 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
2014年世界艾滋病日演讲稿
2014/11/28 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers