zoukankan      html  css  js  c++  java
  • form表单验证-Javascript

    Form表单验证:

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

      1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      2 <html xmlns="http://www.w3.org/1999/xhtml">
      3     <head>
      4         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      5         <title>form-lpb</title>
      6         <style>
      7             body {
      8                 background:#CCF;
      9                 font-size:12px;    
     10             }
     11             .box {
     12                 margin:20px 50px;
     13                 line-height:25px;        
     14             }
     15             .box .box_sel {
     16                 margin-left:25px;        
     17             }
     18              .text {
     19                 text-align:right;        
     20             }
     21             span {
     22                 color:#900;        
     23             }
     24             .length {
     25                 width:38px;        
     26             } 
     27         </style>   
     28     </head>
     29     
     30     <body>
     31         <div class="box">
     32                 <!--form  star-->
     33             <form action="submit.html" onsubmit="return checkAll()">
     34                 <table>
     35                     <tr>
     36                         <td class="text">账号</td>
     37                         <td><input type="text" id="userName" onblur="b_userName()" /></td>
     38                         <td><span id="span_userName"></span></td>
     39                     </tr>
     40                     <tr>
     41                         <td class="text"> 密码</td>
     42                         <td><input type="password" id="pass" onblur="b_pass()" /></td>
     43                         <td> <span id="span_pass"></span></td>
     44                     </tr>
     45                     <tr>
     46                         <td class="text">重复密码</td>
     47                         <td><input type="password" id="pass1" onblur="b_pass1()" /></td>
     48                         <td> <span id="span_pass1"></span></td>
     49                     </tr>
     50                     <tr>
     51                         <td class="text">手机号</td>
     52                         <td><input type="text" id="tel" onblur="b_tel()" /></td>
     53                         <td> <span id="span_tel"></span></td>
     54                     </tr>
     55                     <tr>
     56                         <td class="text">身份证号</td>
     57                         <td><input type="text" id="idCard" onblur="b_idCard()" /></td>
     58                         <td><span id="span_idCard"></span></td>
     59                     </tr>
     60                     <tr>
     61                         <td class="text">出生年月日</td>
     62                         <td>
     63                             <input type="text" id="year" class="length" disabled="disabled" />&nbsp;
     64                             <input type="text" id="month" class="length" disabled="disabled" />&nbsp;
     65                             <input type="text" id="day" class="length" disabled="disabled" />
     66                         </td>
     67                     </tr>
     68                     <tr>
     69                         <td class="text"> 邮箱</td>
     70                         <td><input type="text" id="email" onblur="b_email()" /></td>
     71                         <td><span id="span_email"></span></td>
     72                     </tr>
     73                 </table>
     74                 <div class="box_sel">     
     75                 爱好
     76                         <select>
     77                             <option>篮球</option>
     78                             <option>足球</option>
     79                             <option>排球</option>
     80                         </select>
     81                 地区        
     82                         <select>
     83                             <option>河南</option>
     84                             <option>湖南</option>
     85                             <option>河北</option>
     86                         </select>
     87                          <br />
     88                         <input type="checkbox" id="ch_box" onclick="c_box()"  />
     89                             是否同意
     90                             <a href="xieyi.html" target="_blank">公司协议</a>
     91                         <br />
     92                             <input type="submit" id="sub" value="提交注册" disabled="disabled" />
     93                             <input type="reset" id="rst" value="重新填写" onclick="sub_return()" />
     94                 </div>        
     95             </form> 
     96             <!--end  form -->
     97         </div>     
     98             <script>
     99                 // 用户名 校验
    100                 function b_userName(){
    101                         var reg = /^[a-zA-Z]{3,9}[_]*[0-9]{3,9}$/;  // 用户名-正则表达式
    102                         var c_use = document.getElementById("userName").value;
    103                         var c_span_use = document.getElementById("span_userName");
    104                             if(reg.test(c_use)){
    105                                 c_span_use.innerHTML="";
    106                                 return true;
    107                             }else {
    108                                 c_span_use.innerHTML="用户名必须以3-9个字母开头,可以有下划线_,后面3-9个数字";    
    109                             }                
    110                 }
    111                 // 密码  校验 
    112                 function b_pass(){
    113                         var reg = /^[a-zA-Z]{3,6}[_]*[0-9]{3,9}$/; // 密码-正则表达式
    114                         var c_pass = document.getElementById("pass").value;
    115                         var c_span_pass =document.getElementById("span_pass");
    116                             if(reg.test(c_pass)){
    117                                 c_span_pass.innerHTML="";
    118                                 return true;
    119                             }
    120                             
    121                             else {
    122                                 c_span_pass.innerHTML="密码必须以3-6个英文字母开头,后面3-9个数字";
    123                                 return false;    
    124                             }
    125                 }
    126                 //  重复密码 校验、
    127                 function b_pass1(){
    128                         var cm = document.getElementById("pass1").value;
    129                         var cm_sp = document.getElementById("span_pass1");
    130                         var c_pass = document.getElementById("pass").value;
    131                             if(cm==c_pass&&cm!=""){
    132                                 cm_sp.innerHTML="";
    133                                 return true;
    134                             }else{
    135                                 cm_sp.innerHTML="请重复密码";    
    136                                 return false;
    137                             }        
    138                 }
    139                 // 手机号 校验
    140                 function b_tel(){
    141                         var reg = /^(+86)?[1][3,5,8][0-9]{9}$/;
    142                         var c_tel = document.getElementById("tel").value;
    143                         var c_span_tel = document.getElementById("span_tel");
    144                             if(reg.test(c_tel)){
    145                                 c_span_tel.innerHTML="";
    146                                 return true;    
    147                             }else {
    148                                 c_span_tel.innerHTML="手机号可以(+86)第一位是1,第二位是【3,5,8】,共11位数字";
    149                                 return false;
    150                             }    
    151                 }
    152                 // 身份证号 校验
    153                 function b_idCard(){
    154                         var reg = /d{17}w{1}|d{15}/;
    155                         var c_idCard = document.getElementById("idCard").value;
    156                         var c_span_idCard = document.getElementById("span_idCard");
    157                             if(reg.test(c_idCard)){
    158                                 c_span_idCard.innerHTML="";
    159                                 document.getElementById("year").value=c_idCard.substr(6,4);// 自动 获取 年份 
    160                                 document.getElementById("month").value=c_idCard.substr(10,2);// 自动 获取 月份
    161                                 document.getElementById("day").value=c_idCard.substr(12,2);
    162                                 return true;
    163                             }else{
    164                                 c_span_idCard.innerHTML="身份证格式错误,必须是18位数或者是15位数";
    165                                 document.getElementById("year").value="";// 自动 获取 年份 
    166                                 document.getElementById("month").value="";// 自动 获取 月份
    167                                 document.getElementById("day").value="";
    168                                 return false;
    169                             }    
    170                 }
    171                 // 邮箱  校验
    172                 function b_email(){
    173                         var reg = /w+@w+.w+/;
    174                         var c_email = document.getElementById("email").value;
    175                         var c_span_email = document.getElementById("span_email");
    176                             if(reg.test(c_email)){
    177                                 c_span_email.innerHTML="";
    178                                 return true;
    179                             }else {
    180                                 c_span_email.innerHTML="邮箱格式错误,必须包含 @ 和 . ";
    181                                 return false;                        
    182                             }        
    183                 }
    184                 // 协议 校验
    185                 function c_box(){
    186                         var c_b = document.getElementById("ch_box");
    187                         var c_sub = document.getElementById("sub");
    188                             if(c_b.checked){
    189                                 c_sub.disabled=false;
    190                             }else{
    191                                 c_sub.disabled=true;    
    192                             }                   
    193                 }  
    194                 // sub_return  当点击重新填写时 提交 按钮 恢复为不可用状态
    195                 function sub_return(){
    196                     var subt = document.getElementById("sub");     
    197                         subt.disabled=true;
    198                     var span_clean = document.getElementsByTagName("span");    
    199                     
    200                         for(var i=0;i<=span_clean.length;i++){
    201                             var span1 = span_clean[i];
    202                             span1.innerHTML= "";        
    203                         }    
    204                 } 
    205                 //  整体  校验
    206                 function checkAll(){
    207                     var c1 =b_userName();
    208                     var c2 =b_pass();
    209                     var c3 =b_tel();
    210                     var c4 =b_idCard();    
    211                     var c5 =b_email();
    212                         if(c1&&c2&&c3&&c4&&c5){
    213                             return true;
    214                         }else{
    215                             return false;        
    216                         }
    217                 }
    218             </script>      
    219     </body>
    220 </html>

    效果 如下图所示:

    【结语】
      三人行,必有我师焉。

    活着,最大的失败不是跌倒,而是从来都不敢奔跑。
  • 相关阅读:
    Thinkphp 中的自动验证 上一篇有例子
    Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
    ThinkPHP框架 祖辈分的理解 【儿子 FenyeController】继承了【父亲 FuController】继承了【祖辈 Controller】的
    ThinkPHP框架 AJAX方法返回 AJAX实现分页例子:
    ThinkPHP框架 【 AJAX方法返回 】 例子:简单添加一条数据 和 查询一个表里的数据
    thinkPHP框架 简单的删除和修改数据的做法 和 模板继承的意思大概做法
    cookie 和 session 的区别
    ThinkPHP框架 表单传值自动验证!!
    UVA 11624 Fire! (bfs)
    POJ 3074 Sudoku (Dacing Links)
  • 原文地址:https://www.cnblogs.com/pengbo518/p/6231285.html
Copyright © 2011-2022 走看看