HTML样式

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

 <form id="form1">
<h2>增加管理员</h2>
<table>
<tr>
<td>姓名:</td>
<td>
<input name="username"/>
<span>*</span>
</td>
<td>
<div class="vali_info">
10个字符以内的字母、数字或下划线的组合
</div>
</td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="password" name="pwd"/>
<span>*</span>
</td>
<td>
<div class="vali_info">6位数字</div>
</td>
</tr>
<tr>
<td></td>
<td colspan="2">
<input type="submit" value="保存"/>
<input type="reset" value="重填"/>
</td>
</tr>
</table>
</form>

CSS样式

 table{width:700px}
/*¸¸ÔªËØÏµĵÚ1¸ö£¬µÚn¸ö£¬×îºóÒ»¸ötd×ÓÔªËØ*/
td:first-child{width:60px}
/*IE9以上支持nth-child*/
td:nth-child(2){width:200px}
/*IE*/
td:first-child+td{width:200px}
/*IE²»Ö§³Ö--¿ÉÒÔ¿¿×Ü¿í¶ÈÀ´µ÷½Ú
td:last-child{width:340px}*/
td span{color:red} .vali_info{/* Ò³Ãæ³õʼ£¬ÑéÖ¤ÏûÏ¢²»ÏÔʾ */
display:none;
}
.txt_focus{/*µ±Îı¾¿ò»ñµÃ½¹µãʱ´©ÉÏ*/
border-top:2px solid black;
border-left:2px solid black;
background-color: yellow;
}/*µ±Îı¾¿òʧȥ½¹µãʱÍÑÏÂ*/ .vali_success,.vali_fail{
background-repeat:no-repeat;
background-position:left center;
display:block;
}
/* ÑéÖ¤ÏûÏ¢£ºÑé֤ͨ¹ýʱµÄÑùʽ */
.vali_success{
background-image:url("../images/ok.png");
padding-left:20px;
width:0px;height:20px;//注意这里的需要隐藏文字的样式
overflow:hidden;//隐藏文字overflow不可缺少
}
/* ÑéÖ¤ÏûÏ¢£ºÑé֤ʧ°ÜʱµÄÑùʽ */
.vali_fail{
background-image:url("../images/err.png");
border:1px solid red;
background-color:#ddd;
color:red;
padding-left:30px;
}

JS代码如下:

 //Step1:为name为username和pwd的文本框绑定获得焦点事件
//获得表单对象:
var form=document.forms[0],
txtName=form.username,
txtPwd=form.pwd;
txtName.onfocus=getFocus;
txtPwd.onfocus=getFocus;
function getFocus(){
//this->当前文本框
//当前文本框边框加粗
this.className="txt_focus";
//清除旁边div的class
var div=this.parentNode.nextElementSibling
.firstElementChild;
div.className="";
}
txtName.onblur=function(){
vali(this,/^\w{1,10}$/);
}
function vali(txt,reg){
//清除当前文本框的class
txt.className="";
//获取旁边div
var div=txt.parentNode.nextElementSibling
.firstElementChild;
//用reg测试当前文本框的内容
//如果通过,就修改div的class为vali_success
//增加true,false是为了方便函数后续的判断,需要了解;
if(reg.test(txt.value)){
div.className="vali_success";
return true;
}
//否则修改div的class为vali_fail
else{
div.className="vali_fail";
return false;
}
}
txtPwd.onblur=function(){
vali(this,/^\d{6}$/);
}
//为表单添加时间监听:注意这里为表单元素,需要注意;
form.addEventListener('submit',function(e){
if(!vali(txtName, /^\w{1,10}$/))
txtName.focus();
else if(!vali(txtPwd,/^\d{6}$/))
txtPwd.focus();
else if(vali(txtName,/^\w{1,10}$/)&& vali(txtPwd,/^\d{6}$/)) {
this.submit();
}
e.preventDefault();
})

最终实现效果如下:

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

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

    jquery.Validation是一款优秀的jquery插件,它能对客户端表单进行验证,并且提供了许多可以定制的属性和方法,良好的扩展性.现在 结合实际情况,我把项目中经常要用到的验证整理成一个实例 ...

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

    前言 : Laravel 提供了多种方法来验证应用输入数据.默认情况下,Laravel 的控制器基类使用ValidatesRequests trait,该trait提供了便利的方法通过各种功能强大的验 ...

  3. html5自带表单验证

    起因:今天无意中发现chrome的input框自带表单验证!于是就去试试firefox,惊奇的发现也有自带的验证提示,只不过两者的样式不一样 chrome中的样子: firefox中的样子: 发散:具 ...

  4. [H5表单]html5自带表单验证体验优化及提示气泡修改

    慕课网之前录制的视频,js/jquery各种宽高的理解和应用,最近终于上线了.还有一个html5左侧导航没有上线!最近慕课网系列课程让我录制一个html5表单验证的课程.今天就稍微说一下表单验证!另外 ...

  5. HTML5 web Form表单验证实例

    HTML5 web Form 的开发实例! index.html <!DOCTYPE html> <html> <head> <meta charset=&q ...

  6. 表单验证代码实例:jquery.validate.js表单验证插件

    jquery.validate.js是JQuery旗下的一个验证插件,借助JQuery的优势,我们可以迅速验证一些常见的输入,并且可以自己扩充自己的验证方法.使用前请先下载必要的JQuery插件:jq ...

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

    一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二.引入依赖包 <script src="../../scripts/j ...

  8. html5 表单样式 表单验证1 2 3

    html5 表单样式 ie9以下不支持 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  9. Yii 框架表单验证---实例

随机推荐

  1. There is no public key available for the following key IDs:3B4FE6ACC0B21F32

    ubuntu 运行完sudo apt-get update之后,提示 W: There is no public key available for the following key IDs: 3B ...

  2. Twisted的WEB开发

    1   简介 在WEB开发中,偶尔需要对HTTP协议更多底层细节进行控制,这时的django/web.py等等显然无法满足要求,所以只好求助于Twisted了.使用Twisted进行WEB开发,其实更 ...

  3. 学习Python:StringIO与cStringIO

    StringIO的行为与file对象非常像,但它不是磁盘上文件,而是一个内存里的“文件”,我们可以将操作磁盘文件那样来操作StringIO.一个简单的例子,让你对StringIO有一个感性的认识: f ...

  4. 关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 转

    #!/usr/bin/python 是用来说明脚本语言是python的 是要用/usr/bin下面的程序(工具)python,这个解释器,来解释python脚本,来运行python脚本的. # -*- ...

  5. ASP.NET Core修改IOC为Autofac

    如下是我为了了解如何更换ASP.NET Core中的IOC而查找的文章,如果大家英文OK的,可以直接前往阅读,同时也已经有简单的github例子供大家参考. 参考文章: ASP.NET Core文档: ...

  6. 配置android studio环境

    配置java jdk 1.1运行exe 程序 1.2配置jdk 环境变量 添加环境变量 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin .;%JAVA_HOME%\lib;% ...

  7. bzoj 1179 [Apio2009]Atm——SCC缩点+spfa

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1179 显然SCC缩点. 然后准备倒着拓扑序推到st,结果WA. 听TJ说dj求最长路会发生不 ...

  8. php连接数据库查询方法(还少一种pdo方法)

    <?php header("content-type:text/html;charset=utf-8"); $conn = mysql_connect("local ...

  9. web前端学习(四)JavaScript学习笔记部分(8)-- JavaScript瀑布流

    index.html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&qu ...

  10. Hackerrank--Stock Maximize(DP Practice)

    题目链接 Your algorithms have become so good at predicting the market that you now know what the share p ...