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>

效果 如下图所示:

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

活着,最大的失败不是跌倒,而是从来都不敢奔跑。
原文地址:https://www.cnblogs.com/pengbo518/p/6231285.html