基于javascript的Form表单验证


Posted in Javascript onDecember 29, 2016

Form表单验证:
js基础考试内容,form表单验证,正则表达式,blur事件,自动获取数组,以及css布局样式,动态清除等。完整代码如下:

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>form-lpb</title>
    <style>
      body {
        background:#CCF;
        font-size:12px;  
      }
      .box {
        margin:20px 50px;
        line-height:25px;    
      }
      .box .box_sel {
        margin-left:25px;    
      }
       .text {
        text-align:right;    
      }
      span {
        color:#900;    
      }
      .length {
        width:38px;    
      } 
    </style>  
  </head>
  
  <body>
    <div class="box">
        <!--form star-->
      <form action="submit.html" onsubmit="return checkAll()">
        <table>
          <tr>
            <td class="text">账号</td>
            <td><input type="text" id="userName" onblur="b_userName()" /></td>
            <td><span id="span_userName"></span></td>
          </tr>
          <tr>
            <td class="text"> 密码</td>
            <td><input type="password" id="pass" onblur="b_pass()" /></td>
            <td> <span id="span_pass"></span></td>
          </tr>
          <tr>
            <td class="text">重复密码</td>
            <td><input type="password" id="pass1" onblur="b_pass1()" /></td>
            <td> <span id="span_pass1"></span></td>
          </tr>
          <tr>
            <td class="text">手机号</td>
            <td><input type="text" id="tel" onblur="b_tel()" /></td>
            <td> <span id="span_tel"></span></td>
          </tr>
          <tr>
            <td class="text">身份证号</td>
            <td><input type="text" id="idCard" onblur="b_idCard()" /></td>
            <td><span id="span_idCard"></span></td>
          </tr>
          <tr>
            <td class="text">出生年月日</td>
            <td>
              <input type="text" id="year" class="length" disabled="disabled" /> 
              <input type="text" id="month" class="length" disabled="disabled" /> 
              <input type="text" id="day" class="length" disabled="disabled" />
            </td>
          </tr>
          <tr>
            <td class="text"> 邮箱</td>
            <td><input type="text" id="email" onblur="b_email()" /></td>
            <td><span id="span_email"></span></td>
          </tr>
        </table>
        <div class="box_sel">   
        爱好
            <select>
              <option>篮球</option>
              <option>足球</option>
              <option>排球</option>
            </select>
        地区    
            <select>
              <option>河南</option>
              <option>湖南</option>
              <option>河北</option>
            </select>
             <br />
            <input type="checkbox" id="ch_box" onclick="c_box()" />
              是否同意
              <a href="xieyi.html" target="_blank">公司协议</a>
            <br />
              <input type="submit" id="sub" value="提交注册" disabled="disabled" />
              <input type="reset" id="rst" value="重新填写" onclick="sub_return()" />
        </div>    
      </form> 
      <!--end form -->
    </div>   
      <script>
        // 用户名 校验
        function b_userName(){
            var reg = /^[a-zA-Z]{3,9}[_]*[0-9]{3,9}$/; // 用户名-正则表达式
            var c_use = document.getElementById("userName").value;
            var c_span_use = document.getElementById("span_userName");
              if(reg.test(c_use)){
                c_span_use.innerHTML="√";
                return true;
              }else {
                c_span_use.innerHTML="用户名必须以3-9个字母开头,可以有下划线_,后面3-9个数字";  
              }        
        }
        // 密码 校验 
        function b_pass(){
            var reg = /^[a-zA-Z]{3,6}[_]*[0-9]{3,9}$/; // 密码-正则表达式
            var c_pass = document.getElementById("pass").value;
            var c_span_pass =document.getElementById("span_pass");
              if(reg.test(c_pass)){
                c_span_pass.innerHTML="√";
                return true;
              }
              
              else {
                c_span_pass.innerHTML="密码必须以3-6个英文字母开头,后面3-9个数字";
                return false;  
              }
        }
        // 重复密码 校验、
        function b_pass1(){
            var cm = document.getElementById("pass1").value;
            var cm_sp = document.getElementById("span_pass1");
            var c_pass = document.getElementById("pass").value;
              if(cm==c_pass&&cm!=""){
                cm_sp.innerHTML="√";
                return true;
              }else{
                cm_sp.innerHTML="请重复密码";  
                return false;
              }    
        }
        // 手机号 校验
        function b_tel(){
            var reg = /^(\+86)?[1][3,5,8][0-9]{9}$/;
            var c_tel = document.getElementById("tel").value;
            var c_span_tel = document.getElementById("span_tel");
              if(reg.test(c_tel)){
                c_span_tel.innerHTML="√";
                return true;  
              }else {
                c_span_tel.innerHTML="手机号可以(+86)第一位是1,第二位是【3,5,8】,共11位数字";
                return false;
              }  
        }
        // 身份证号 校验
        function b_idCard(){
            var reg = /\d{17}\w{1}|\d{15}/;
            var c_idCard = document.getElementById("idCard").value;
            var c_span_idCard = document.getElementById("span_idCard");
              if(reg.test(c_idCard)){
                c_span_idCard.innerHTML="√";
                document.getElementById("year").value=c_idCard.substr(6,4);// 自动 获取 年份 
                document.getElementById("month").value=c_idCard.substr(10,2);// 自动 获取 月份
                document.getElementById("day").value=c_idCard.substr(12,2);
                return true;
              }else{
                c_span_idCard.innerHTML="身份证格式错误,必须是18位数或者是15位数";
                document.getElementById("year").value="";// 自动 获取 年份 
                document.getElementById("month").value="";// 自动 获取 月份
                document.getElementById("day").value="";
                return false;
              }  
        }
        // 邮箱 校验
        function b_email(){
            var reg = /\w+@\w+\.\w+/;
            var c_email = document.getElementById("email").value;
            var c_span_email = document.getElementById("span_email");
              if(reg.test(c_email)){
                c_span_email.innerHTML="√";
                return true;
              }else {
                c_span_email.innerHTML="邮箱格式错误,必须包含 @ 和 . ";
                return false;            
              }    
        }
        // 协议 校验
        function c_box(){
            var c_b = document.getElementById("ch_box");
            var c_sub = document.getElementById("sub");
              if(c_b.checked){
                c_sub.disabled=false;
              }else{
                c_sub.disabled=true;  
              }          
        } 
        // sub_return 当点击重新填写时 提交 按钮 恢复为不可用状态
        function sub_return(){
          var subt = document.getElementById("sub");   
            subt.disabled=true;
          var span_clean = document.getElementsByTagName("span");  
          
            for(var i=0;i<=span_clean.length;i++){
              var span1 = span_clean[i];
              span1.innerHTML= "";    
            }  
        } 
        // 整体 校验
        function checkAll(){
          var c1 =b_userName();
          var c2 =b_pass();
          var c3 =b_tel();
          var c4 =b_idCard();  
          var c5 =b_email();
            if(c1&&c2&&c3&&c4&&c5){
              return true;
            }else{
              return false;    
            }
        }
      </script>   
  </body>
</html>

效果如下图所示:

基于javascript的Form表单验证

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js+FSO遍历文件夹下文件并显示
Mar 07 Javascript
比较简单实用的使用正则三种版本的js去空格处理方法
Nov 18 Javascript
jQuery AjaxQueue改进步骤
Oct 06 Javascript
jQuery中$.click()无效问题分析
Jan 29 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
Apr 13 Javascript
基于javascript实现表格的简单操作
May 21 Javascript
AngularJS入门教程之更多模板详解
Aug 19 Javascript
js实现文字向上轮播功能
Jan 13 Javascript
利用Jasmine对Angular进行单元测试的方法详解
Jun 12 Javascript
JS同步、异步、延迟加载的方法
May 05 Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
Aug 07 Javascript
Js数组扁平化实现方法代码总汇
Nov 11 Javascript
详解JS去重及字符串奇数位小写转大写
Dec 29 #Javascript
bootstrap导航条实现代码
Dec 28 #Javascript
浅谈javascript中的事件冒泡和事件捕获
Dec 28 #Javascript
bootstrap导航、选项卡实现代码
Dec 28 #Javascript
bootstrap提示标签、提示框实现代码
Dec 28 #Javascript
EasyUI折叠表格层次显示detailview详解及实例
Dec 28 #Javascript
一个炫酷的Bootstrap导航菜单
Dec 28 #Javascript
You might like
PHP安全编程之加密功能
2006/10/09 PHP
PHP如何编写易读的代码
2007/07/10 PHP
PHP内存缓存Memcached类实例
2014/12/08 PHP
PHP实现浏览器中直接输出图片的方法示例
2018/03/14 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
javascript 关闭IE6、IE7
2009/06/01 Javascript
js tab效果的实现代码
2009/12/26 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
2018/11/05 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
[01:10:58]KG vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python程序员开发中常犯的10个错误
2014/07/07 Python
Python魔术方法详解
2015/02/14 Python
python中__call__内置函数用法实例
2015/06/04 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
Python之Numpy的超实用基础详细教程
2019/10/23 Python
python 解决print数组/矩阵无法完整输出的问题
2020/02/19 Python
python剪切视频与合并视频的实现
2020/03/03 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
Python调用C语言程序方法解析
2020/07/07 Python
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
美国创意之家:BulbHead
2017/07/12 全球购物
JDO的含义
2012/11/17 面试题
毕业生求职简历的自我评价
2013/10/23 职场文书
迎新春趣味活动方案
2014/08/24 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
导游词之白茶谷九龙峡
2019/10/23 职场文书
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL