HTML5 web Form 的开发实例!

index.html

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>HTML5表单验证</title>
<link rel="stylesheet" type="text/css" href="../css/style.css">
<link rel="stylesheet" type="text/css" href="../css/test.css">
<script type="text/javascript" src="../js/test.js"></script>
</head>
<body>
<div id="content">
<header>
<h2>HTML5 Web Form</h2>
</header>
<section>
<form method="post" action="" name="myform" class="form" >
<label for="user_name">真实姓名<br/></label>
<input id="user_name" type="text" name="user_name" required pattern="^([\u4e00-\u9fa5]+|([a-z]+\s?)+)$" /><br/> <label for="user_item">比赛项目<br/></label>
<input list="ball" id="user_item" type="text" name="user_item" required/><br/>
<datalist id="ball">
<option value="篮球"/>
<option value="羽毛球"/>
<option value="桌球"/>
</datalist> <label for="user_email">电子邮箱<br/></label>
<input id="user_email" type="email" name="user_email" pattern="^[0-9a-z][a-z0-9\._-]{1,}@[a-z0-9-]{1,}[a-z0-9]\.[a-z\.]{1,}[a-z]$" required /><br/> <label for="user_phone">手机号码<br/></label>
<input id="user_phone" type="telephone" name="user_phone" pattern="^1\d{10}$|^(0\d{2,3}-?|\(0\d{2,3}\))?[1-9]\d{4,7}(-\d{1,8})?$" required/><br/> <label for="user_id">身份证号</label><br/>
<input id="user_id" type="text" name="user_id" required pattern="^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$" /><br/> <label for="user_born">出生年月</label><br/>
<input id="user_born" type="month" name="user_born" required /></span><br/> <label for="user_rank">名次期望</label>
<span>第<em id="ranknum">5</em>名</span><br/>
<input id="user_rank" type="range" name="user_rank" value="5" min="1" max="10" step="1" required /><br/> <button type="submit" name="submit" value="提交表单">提交表单</button>
</form>
</section>
<footer><em>Designed by Wang LeHui.</em></footer>
</div>
</body>
</html>

style.css

 #content{
margin:0 auto;
width:350px;
}
.form{
padding: 20px;
border:1px solid #bbb;
-moz-border-shadow:0 0 10px #bbb;
-webkit-border-shadow:0 0 10px #bbb;
shadow:0 0 10px #bbb;
}
label+span{
color: #FF0000;
}
.form input,button{
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
background-color: #fff;
border:1px solid #ccc;
font-size: 15px;
width: 250px;
min-height: 30px;
display: block;
margin-bottom: 5px;
margin-top: 5px;
-webkit-border-radius:5px;
-moz-border-radius:5px;
border-radius: 5px;
-webkit-transition:all 0.5s ease-in-out;
-moz-transition:all 0.5s ease-in-out;
transition:all 0.5s ease-in-out;
}
.form input:focus,button:focus{
background-color: #fff;
-moz-border-shadow:0 0 20px #ccc;
-webkit-border-shadow:0 0 20px #ccc;
shadow:0 0 20px #ccc;
-webkit-transform:scale(1.05);
-moz-transform:scale(1.05);
transform:scale(1.05);
}
button[type=submit]{
background-color: #fff;
display: inline-block;
padding:5px 10px 6px 10px;
font-weight: bold;
border:1px solid #888;
border-radius:5px;
-moz-border-radius:5px;
-moz-border-shadow:0 0 3px #888;
-webkit_box_shadow:0 0 3px #888;
box-shadow: 0 0 3px #888;
opacity: 1.0;
}
button[type=submit]:hover{
background-color: #fff;
opacity: 1.0;
color:#516527;
cursor: hand;
cursor: pointer;
}

test.css

 .form input:valid{
background:url("../images/right1.png") no-repeat 210px 1px;
} .form input:focus:invalid{
background:url("../images/error1.png") no-repeat 210px 0px;
};

test.js

 var rank;
var ranknum;
var user_name;
var user_item;
var user_email;
var email_validityState; function load(){
rank = document.myform.user_rank;
ranknum = document.getElementById('ranknum');
rank.addEventListener("change",changerank,false); user_name = document.getElementById('user_name');
user_name.addEventListener("change",checkname,false); user_item = document.getElementById("user_item");
user_item.addEventListener("change",checkitem,false);
}
function changerank(){
ranknum.innerHTML = rank.value;
}
function checkname(){
if (isname(user_name.value)==null) {
user_name.setCustomValidity("请输入真实的中文名字!");
user_name.validationMessage;
}
else{
user_name.setCustomValidity("");
}
}
function isname(str){
var reg = /^[\u4E00-\u9FA5]{2,5}(?:·[\u4E00-\u9FA5]{2,5})*$/;
return reg.exec(str);
} function checkitem(){
if(isitem(user_item.value)==null){
user_item.setCustomValidity("请正确选择比赛项目!");
user_item.validationMessage;
}
else{
user_item.setCustomValidity("");
}
}
function isitem(str){
if (!(str=="篮球"||str=="桌球"||str=="羽毛球")) {
return null;
}
else {
return 0;
}
}
window.addEventListener("load",load,false);

HTML5 web Form表单验证实例的更多相关文章

  1. Django(5) session登录注销、csrf及中间件自定义、django Form表单验证(非常好用)

    一.Django中默认支持Session,其内部提供了5种类型的Session供开发者使用: 数据库(默认) 缓存 文件 缓存+数据库 加密cookie 1.数据库Session 1 2 3 4 5 ...

  2. web框架-(六)Django补充---form表单验证

    一.form表单验证 1. 常规html页面的form表单验证 常规页面中,如果想实现对表单中用户输入信息的数据验证,需要配合Ajax来实现. 使用前我们先来熟悉下函数参数:request,其中包含的 ...

  3. python26:自定义form表单验证

    一.自定义Form的原理 1.1 各种form表单验证比较 只有python提供了form表单验证,其他的都没有提供.django提供的功能还不够强大.最强大的是微软的ASP.NET!我们可以自己写一 ...

  4. python_way day19 HTML-day5 (form表单验证,CSRF,cookie,session,缓存)

    python-way day19 1. dJango的form表单验证 2.CSRF 跨站请求伪造 3.cookie,session 4.缓存 一,django表单验证功能 1.django验证基础: ...

  5. [php基础]PHP Form表单验证:PHP form validator使用说明

    在PHP网站开发建设中,用户注册.留言是必不可少的功能,用户提交的信息数据都是通过Form表单提交,为了保证数据的完整性.安全性,PHP Form表单验证是过滤数据的首要环节,PHP对表单提交数据的验 ...

  6. Bootstrap+PHP表单验证实例

    简单实用的Bootstrap+PHP表单验证实例,非常适合初学者及js不熟悉者,还有ajax远程验证 js验证表单 1 $(document).ready(function() { 2 $('#def ...

  7. jQuery-easyui和validate表单验证实例

    jQuery EasyUI 表单 - 表单验证插件validatebox 使用时需要向页面引入两个css文件如下: <link rel="stylesheet" href=& ...

  8. 抽屉之Tornado实战(7)--form表单验证

    在这里,我们把form表单验证的代码进行工具化了,以后稍微修改一下参数就可以拿来用了 先贴上代码 forms.py from backend.form import fields class Base ...

  9. ASP.NET MVC Form表单验证与Authorize特性

    一.Form表单验证 1.基本概念 表单验证是一个基于票据(ticket-based)[也称为基于令牌(token-based)]的系统.当用户登录系统以后,会得到一个包含基于用户信息的票据(tick ...

随机推荐

  1. 【POJ 3177】Redundant Paths(边双连通分量)

    求出每个边双连通分量缩点后的度,度为1的点即叶子节点.原图加上(leaf+1)/2条边即可变成双连通图. #include <cstdio> #include <cstring> ...

  2. APP图标和启动页

    iOS App图标和启动画面尺寸 字数349 阅读22025 评论3 喜欢51 注意:iOS所有图标的圆角效果由系统生成,给到的图标本身不能是圆角的. 1. 桌面图标 (app icon) for i ...

  3. css-transition和transform实现图片悬浮移动动画

    今天在京东首页上看到一个效果,鼠标悬浮在图片上时,图片发生移动,鼠标移走时再移回,并且有一个过渡效果. 貌似很简单,自己做做试试吧 我首先使用的是jquery在鼠标悬浮到图片上给图片增加一个类,这个类 ...

  4. 【BZOJ-1787&1832】Meet紧急集合&聚会 倍增LCA

    1787: [Ahoi2008]Meet 紧急集合 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 2259  Solved: 1023[Submit] ...

  5. Android成长日记-ListView

    数据适配器:把复杂的数据(数组,链表,数据库,集合等)填充在指定的视图界面上 适配器的类型: ① ArrayAdapter(数组适配器):用于绑定格式单一的数据 数据源:可以是集合或数组 ① Simp ...

  6. Windows Sqlserver Automatic Log Audit Via C/C++

    catalog . 数据库日志审计产品 . Mysql日志审计 . SQLServer日志审计 1. 数据库日志审计产品 Relevant Link: http://enterprise.huawei ...

  7. [JavaWeb 用MyEclipse分别创建最简单的JSP程序和Servlet程序]

    最近看了子柳的<淘宝技术这十年>,其中讲到因为负载和连接池问题,淘宝当年迫不得已从SUN请来一对工程师从LAMP架构转到Java+Oracle.作为一个PHP为“母语”的程序仔,真是感到压 ...

  8. TCP/IP详解 笔记十一

    域名服务系统(DNS) DNS:名字到IP转换:电子邮件选路信息:分布式数据库 解析器:是通过gethostbyname(3)和gethostbyaddr(3)来实现的 最常用的名字服务器是BIND ...

  9. codevs 1013 求先序排列(二叉树遍历)

    传送门 Description 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=8). Input 两个字符串,分别是中序和后序(每行一个) Outp ...

  10. [Android]Volley源码分析(一)

    一. 如何使用Volley? 1. 首先定义一个RequestManager类,用来在Android程序启动时对Volley进行初始化.RequestManager为单例类,因为只有在程序启动时调用, ...