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();
})

最终实现效果如下:

最新文章

  1. 表单验证:$tablePrefix(定义表前缀);$trueTableName = &#39;yonghu&#39;,找到真实表名(yonghu)表;create($attr,0)两个参数;批量验证(返回数组);ajax+动态验证表单
  2. ubuntu安装cpu版caffe
  3. javascript基础07
  4. .net 中读取自定义Config文件
  5. Mac OS下Boot2Docker的网络映射设置
  6. 深入理解SQL注入绕过WAF与过滤机制
  7. 利用Spring AOP自定义注解解决日志和签名校验
  8. 细谈Linux和windows差异之图形化用户接口、命令行接口
  9. SQLite 入门教程(二)创建、修改、删除表 (转)
  10. win7、win8.1淡绿色护眼模式设置
  11. RSA原理、ssl认证、Tomcat中配置数字证书以及网络传输数据中的密码学知识
  12. swiper实现臭美app滑动效果
  13. Hibernate Criteria使用
  14. HIS系统结算后,没有更新单据状态为“已结算”
  15. The Last Reader Response——13-17
  16. 复习回顾(String,StringBuffer,Arrays方法总结)
  17. petalinux--执行子进程“oe-gnome-terminal-phonehome”失败(没有那个文件或目录)(转)
  18. U3D学习06-数学基础
  19. 项目总结02:百度地图js 基本用法介绍
  20. 洛谷 P1580 yyy loves Easter_Egg I

热门文章

  1. Angularjs 1 中使用指令绑定点击事件
  2. [转]WPF焦点概述
  3. JZOJ5967 常数国
  4. bzoj1706 relays 奶牛接力跑 线性代数
  5. 常用的git操作命令
  6. PHP+Ajax点击加载更多内容 -这个效果好,速度快,只能点击更多加载,不能滚动自动加载
  7. Java虚拟机原理图解-- 1.2、class文件中的常量池
  8. Java虚拟机原理图解-- 1.1、class文件基本组织结构 [转]
  9. Angular-cli 的安装
  10. Xcode10 代码块(Code Snippet)添加和删除