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 相关文章推荐
flash调用js中的方法,让js传递变量给flash的办法及思路
Aug 07 Javascript
调用HttpHanlder的几种返回方式小结
Dec 20 Javascript
使用node.js半年来总结的 10 条经验
Aug 18 Javascript
jquery提示效果实例分析
Nov 25 Javascript
JavaScript实现文字跟随鼠标特效
Aug 06 Javascript
基于jquery实现省市联动效果
Nov 23 Javascript
js密码强度实时检测代码
Mar 02 Javascript
原生js实现autocomplete插件
Apr 14 Javascript
一个极为简单的requirejs实现方法
Oct 20 Javascript
vue项目中v-model父子组件通信的实现详解
Dec 10 Javascript
vue中的mescroll搜索运用及各种填坑处理
Oct 30 Javascript
JS实现躲避粒子小游戏
Jun 18 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
《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
一个简单至极的PHP缓存类代码
2015/10/23 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
jquery预览图片实现鼠标放上去显示实际大小
2014/01/16 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
vue下的@change事件的实现
2019/10/25 Javascript
[48:41]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
Python与shell的3种交互方式介绍
2015/04/11 Python
python获取外网ip地址的方法总结
2015/07/02 Python
快速查询Python文档方法分享
2017/12/27 Python
python xlsxwriter创建excel图表的方法
2018/06/11 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
Python 导入文件过程图解
2019/10/15 Python
Python tkinter三种布局实例详解
2020/01/06 Python
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
美国温暖商店:The Warming Store
2018/12/15 全球购物
趣天网日本站:Qoo10 JP
2019/09/18 全球购物
应届大学生求职信
2013/12/01 职场文书
自主招生自荐信格式
2013/12/03 职场文书
机电专业个人求职信范文
2013/12/30 职场文书
大学生社会实践评语
2014/04/25 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android