HTML-DOM实例——实现带样式的表单验证

    HTML样式

基于table标签来实现页面结构

 1 <form id="form1">
 2         <h2>增加管理员</h2>
 3         <table>
 4             <tr>
 5                 <td>姓名:</td>
 6                 <td>
 7                     <input name="username"/>
 8                     <span>*</span>
 9                 </td>
10                 <td>
11                     <div class="vali_info">
12                      10个字符以内的字母、数字或下划线的组合
13                     </div>
14                 </td>
15             </tr>
16             <tr>
17                 <td>密码:</td>
18                 <td>
19                     <input type="password" name="pwd"/>
20                     <span>*</span>
21                 </td>
22                 <td>
23                     <div class="vali_info">6位数字</div>
24                 </td>
25             </tr>
26             <tr>
27                 <td></td>
28                 <td colspan="2">
29                 <input type="submit" value="保存"/>
30                 <input type="reset" value="重填"/>
31                 </td>
32             </tr>
33         </table>
34     </form>

CSS样式

 1 table{width:700px}
 2 /*???a????μ?μú1??£?μún??£?×?oóò???td×ó?a??*/
 3 td:first-child{width:60px}
 4 /*IE2??§3?nth-child*/
 5 td:nth-child(2){width:200px}
 6 /*IE*/
 7 td:first-child+td{width:200px}
 8 /*IE2??§3?--?éò???×ü?í?èà′μ÷?ú
 9 td:last-child{width:340px}*/
10 td span{color:red}
11
12 .vali_info{/* ò3??3?ê?£??é?¤???¢2???ê? */
13     display:none;
14 }
15 .txt_focus{/*μ±??±??ò??μ??1μ?ê±′?é?*/
16     border-top:2px solid black;
17     border-left:2px solid black;
18     background-color: yellow;
19 }/*μ±??±??òê§è¥?1μ?ê±í???*/
20
21 .vali_success,.vali_fail{
22     background-repeat:no-repeat;
23   background-position:left center;
24     display:block;
25 }
26 /* ?é?¤???¢£o?é?¤í¨1yê±μ??ùê? */
27 .vali_success{
28     background-image:url("../images/ok.png");
29     padding-left:20px;
30     width:0px;height:20px;//注意这里的需要隐藏文字的样式
31     overflow:hidden;//隐藏文字overflow不可缺少
32 }
33 /* ?é?¤???¢£o?é?¤ê§°üê±μ??ùê? */
34 .vali_fail{
35     background-image:url("../images/err.png");
36     border:1px solid red;
37     background-color:#ddd;
38     color:red;
39     padding-left:30px;
40 }

JS代码如下:

 1 //Step1:为name为username和pwd的文本框绑定获得焦点事件
 2 //获得表单对象:
 3 var form=document.forms[0],
 4     txtName=form.username,
 5     txtPwd=form.pwd;
 6 txtName.onfocus=getFocus;
 7 txtPwd.onfocus=getFocus;
 8 function getFocus(){
 9   //this->当前文本框
10   //当前文本框边框加粗
11   this.className="txt_focus";
12   //清除旁边div的class
13   var div=this.parentNode.nextElementSibling
14            .firstElementChild;
15   div.className="";
16 }
17 txtName.onblur=function(){
18   vali(this,/^\w{1,10}$/);
19 }
20 function vali(txt,reg){
21   //清除当前文本框的class
22   txt.className="";
23   //获取旁边div
24   var div=txt.parentNode.nextElementSibling
25           .firstElementChild;
26   //用reg测试当前文本框的内容
27   //如果通过,就修改div的class为vali_success
28   //增加true,false是为了方便函数后续的判断,需要了解;
29   if(reg.test(txt.value)){
30     div.className="vali_success";
31     return true;
32   }
33   //否则修改div的class为vali_fail
34   else{
35     div.className="vali_fail";
36     return false;
37   }
38 }
39 txtPwd.onblur=function(){
40   vali(this,/^\d{6}$/);
41 }
42 //为表单添加时间监听:注意这里为表单元素,需要注意;
43 form.addEventListener(‘submit‘,function(e){
44                  if(!vali(txtName, /^\w{1,10}$/))
45                         txtName.focus();
46                   else if(!vali(txtPwd,/^\d{6}$/))
47                         txtPwd.focus();
48                     else if(vali(txtName,/^\w{1,10}$/)&& vali(txtPwd,/^\d{6}$/)) {
49                       this.submit();
50                     }
51                      e.preventDefault();
52             })

最终实现效果如下:

时间: 2024-10-25 19:21:55

HTML-DOM实例——实现带样式的表单验证的相关文章

实例讲解表单验证插件Validation的应用

jquery.Validation是一款优秀的jquery插件,它能对客户端表单进行验证,并且提供了许多可以定制的属性和方法,良好的扩展性.现在 结合实际情况,我把项目中经常要用到的验证整理成一个实例DEMO,本文就是通过讲解这个实例来理解Validation的应用. 本实例涉及到的验证有: 用户名:长度.字符验证,重复性ajax验证(是否已存在). 密码:长度验证,重复输入密码验证. 邮件:邮件地址验证. 固定电话:中国大陆固定电话号码验证. 手机号:中国大陆手机号码验证. 网址:网站URL地

【干货】Laravel --Validate (表单验证) 使用实例

前言 : Laravel 提供了多种方法来验证应用输入数据.默认情况下,Laravel 的控制器基类使用ValidatesRequests trait,该trait提供了便利的方法通过各种功能强大的验证规则来验证输入的 HTTP 请求.要掌握 Laravel 强大的验证特性,让我们先看一个完整的验证表单并返回错误信息给用户的例子. 在这之前如果您是首次接触 Laravel 而且并不知道路由如何跳转到指定的控制器 可以查看博主的Restfulapi或者Laravel官网对路由的介绍,在这里就不做介

js之正则、表单验证、dom模型

正则:规则 语法 var a=/表达式/ 输入的值要包含表达式 var a1 = new RegExp('表达式') 检索 ---表达式.test(输入的值) 返还boolean类型 正则符号 (对于多个符号进行正则,用()) ^ ---输入的值以符号后的字符为第一位 $ ---以符号前的字符为结尾 +---- 符号前的字符可以出现多个 *--- 符号前的字符可以出现任意次数 ?--- 符号前字符可以出现0次 或者1次 {n}---符号前字符必须可以出现n次 ,但是要加开始,结尾 {n,}---

PHP 表单验证 - 完成表单实例

------------------------------------------------------------------------------------------- 本节展示如何在用户提交表单后保留输入字段中的值. ------------------------------------------------------------------------------------------- PHP - 保留表单中的值 如需在用户点击提交按钮后在输入字段中显示值,我们在以下

Bootstrap历练实例:导航中的表单

Bootstrap历练实例:导航中的表单,它是使用class.navbar-form类,这确保了表单适当的垂直对齐和在较窄的视口中折叠的行为,使用这个对齐方式选项来决定导航栏中的内容放置在哪里. 实例: <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>

基于angular的表单验证实例

最近,在学习angular下面就和大家分享一个简单的表单验证实例 在分享实例之前先整理一下,一些基础知识 input元素上使用的所有验证选项: 1必填项  <input type="text"  required/> 2最小长度 <input type="text" ng-minlength="5"/> 3最大长度 <input type="text" ng-maxlength="20&

jQuery Validate 表单验证插件----自定义校验结果样式

一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二.引入依赖包 <script src="../../scripts/jquery-1.3.1.js" type="text/javascript"></script> <script src="lib/jquery.validate.js" type="text/javascript"

jquery 一个简单的表单验证实例

表单验证在网站开发过程中经常遇到,我们可以使用服务器端语言验证,也可以使用客户端语言来验证.本文章向大家介绍jquery客户端验证表单的一个简单实例.实例仅作参考. <body> <form method="post" action=""> <div class="int"> <label for="username">用户名:</label> <!-- 为每个

当文本框失去焦点即进行表单验证简单实例

当文本框失去焦点即进行表单验证简单实例:不少的表单验证都有这样的功能,就是当鼠标焦点离开文本框的时候,即刻进行合法性验证,下面就通过一个实例简单介绍一下如何实现此功能,代码实例如下: <script type="text/javascript"> function onblurs(){ if(myform.name.value==""){ alert("姓名不得为空!"); } else if(myform.address.value