html5 表单样式 ie9以下不支持

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表单</title>
</head>
<body>
ie 9 不支持 html智能表单form
<hr/>
<input type="text" list="mydata" autofocus placeholder="请输入电影名称">
<!--autofocus 自动获得焦点-->
<!--placeholder 点击input内容消失-->
<!--required 必填-->
<datalist id="mydata">
<option label="搜索10000次" value="让子弹飞">
<option label="搜索9000次" value="非诚勿扰">
<option label="搜索8000次" value="大笑江湖">
<option label="搜索7000次" value="赵氏孤儿">
<option label="搜索6000次" value="花千骨">
</datalist>
<br/><br/><br/><br/><br/>
<form action="" method="get" name="res" >
邮件<input type="email"/><br/>
网址<input type="url" ><br/> <!--必填 -->
日期<input type="date"/><br/>
月份<input type="month">
电话<input type="tel"> 在手机端才有数字键盘效果<br/>
<!--时间 time datetime
数字 number-->
进度条 <input type="range" min="0" max="3" step="1"/><br/>
搜索 <input type="search" value="搜索"><br/>
颜色<input type="color"/><br/>
数字<input type="number" min="0" max="100" step="1"/><br/>
时间日期<input type="datetime"/>
正则<input type="text" pattern="[789]+" required/> <input type="submit" value="sub"/> </form>
对本网站的评价:<input type="text" name="txtComment" value="Very Good!" form="res" />
</body>
</body>
</html>

表单验证1

表单提交时激发 添加默认验证消息 //txtName.setCustomValidity
checkValidity()实现实时验证
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="js/jquery.js"></script>
</head>
<body>
<form method="get">
<input required type="text" id="name" name="name" >
<span id="tip">*</span><br>
<input type="submit" value="submit">
</form>
<script>
function $(id){
return document.getElementById(id);
}
$("name").addEventListener("blur",blurCheck,false);
function blurCheck(){
/* var value=$("name").value;
if(value.length==0){
// 改变默认提示
$("name").setCustomValidity("用户名不能为空");
}else{
//清空自定义验证,让文本提交
$("name").setCustomValidity("");
}*/
//实时验证
var res=$("name").checkValidity();
if(res){
$("tip").innerHTML="通过";
}else{
$("tip").innerHTML="用户名称不能为空";
}
}
</script>
</body>
</html>

表单验证二

invalid 错误时激发
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<title></title>
<script>
function $(id){
return document.getElementById(id);
} function initial(){
document.frmLogin.addEventListener("invalid",frmLogin_invalid,true);
} //表单执行遇到错误时激发的事件
function frmLogin_invalid(e){
//获取产生错误的元素
var tar = e.target;
tar.style.backgroundColor="red";
var tipId = tar.id + "Tip";
$(tipId).innerHTML="请输入正确数据";
}
window.addEventListener("load",initial,false);
</script>
</head> <body>
<form name="frmLogin">
用户名称:<input type="text" id="txtName" required />
<span id="txtNameTip"></span><br />
用户Email:<input type="email" id="txtEmail" />
<span id="txtEmailTip"></span><br />
<input type="submit" value="提交" />
</form>
</body>
</html>

表单验证三

实时验证 validity.patternMismatch
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<title></title>
<script>
function $(id){
return document.getElementById(id);
} function initial(){
txtName=$("txtName");
txtEmail=$("txtEmail");
txtPhone=$("txtPhone"); //绑定事件
txtName.addEventListener("blur",txtName_blur,false);
txtEmail.addEventListener("blur",txtEmail_blur,false);
txtPhone.addEventListener("blur",txtPhone_blur,false);
} function txtPhone_blur(){
if(txtPhone.validity.patternMismatch){
$("txtPhoneTip").innerHTML="电话号码格式不正确";
} else{
$("txtPhoneTip").innerHTML="通过";
}
} function txtEmail_blur(e){
//验证格式是否正确
if(txtEmail.validity.typeMismatch){
$("txtEmailTip").innerHTML="Email格式不正确,请重新输入";
} else {
$("txtEmailTip").innerHTML="通过";
}
} function txtName_blur(e){
// 判断txtName是否通过了所有的验证
//1、checkValidity
//2、通过validity属性的valid状态
var ret = txtName.validity.valid;
if(ret){
$("txtNameTip").innerHTML="通过";
}else{
if(txtName.validity.valueMissing){
//数据为空,有required,但是没有输入值
$("txtNameTip").innerHTML="请输入您的姓名";
}
}
} window.addEventListener("load",initial,false);
</script>
</head> <body>
<form name="frmLogin">
用户名称:<input type="text" id="txtName" required />
<span id="txtNameTip"></span><br />
用户Email:<input type="email" id="txtEmail" />
<span id="txtEmailTip"></span><br />
移动电话:<input type="phone" id="txtPhone" pattern="^1[3,5,4,8,7]\d{9}$" />
<span id="txtPhoneTip"></span><br />
<input type="submit" value="提交" />
</form>
</body>
</html>

1)、valid
验证元素是否通过所有验证
2)、valueMissing
与required属性相关联,设置了required属性,但是没有赋值,该属性为true
3)、typeMismatch
与type属性相关联,如果输入的数据违反了type类型定义的格式,该属性为true
4)、patternMismatch
与patter属性相关联,如果输入的数据违反了patter属性定义的格式,该属性为true
5)、customError
与setCustomValidity()方法相关的,如果用户设置了setCustomValidity()并且没有清空,该值为true

html5 表单样式 表单验证1 2 3的更多相关文章

  1. [HTML/HTML5]2 CSS样式表设置

    2.1  在HTML文件中设置样式表 当前HTML"规则"指出:HTML仅用于标识页面的内容,应该使用样式表来定义内容的呈现样式.这不仅使Web页面对于所有用户(无论采用什么浏览器 ...

  2. 9月9日HTML上午表单元素2(框架、样式表)

    五.框架 1.frameset是双标签框架集,如果使用框架集,当前页面不能有body. frameset属性:①cols代表左右拆分.cols=“300,*”表示左边框架宽300,右边宽剩余的宽度.* ...

  3. WEB入门 四 CSS样式表深入

    学习内容 Ø        CSS选择器深入学习 Ø        CSS继承 Ø        CSS文本效果 Ø        CSS图片效果 能力目标 Ø        掌握CSS选择器的组合声 ...

  4. CSS样式表的书写位置

    行内式(内联样式) 是通过标签的style属性来设置元素的样式,其基本语法格式如下: <标签名 style="属性1:属性值1; 属性2:属性值2; 属性3:属性值3;"&g ...

  5. css002 创建样式和样式表

    创建样式和样式表 一个样式表包含多个样式 样式表的种类 1.内部样式表,存放在<head></head>之间.如: <head> <style>   ( ...

  6. HTML基础(三)——css样式表

    CSS(Cascading Style Sheet,叠层样式表),作用是美化HTML网页. /*注释区域*/此为注释语法 一.样式表 (一)样式表的分类 1.内联样式表 和HTML联合显示,控制精确, ...

  7. 一起学HTML基础-CSS样式表-基本概念、分类、选择器

    一.基本概念: CSS  (Cascading Style Sheets)层叠样式表,是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. ...

  8. CSS样式表 选择器

    1.内联样式表 和HTML联合显示,控制精确,但是可重用性差,冗余较多. 例:<p style="font-size:14px;">内联样式表</p> &l ...

  9. CCS样式表

    一.css样式表 1.样式表分类 1.内联式 <p style="font-size:18px;">This is an apple</p> 2.内嵌样式表 ...

随机推荐

  1. hdu 1257 最少拦截系统(贪心)

    解题思路:[要充分理解题意,不可断章取义] 贪心:每个防御系统要发挥其最大性能, 举例: Input : 9 389 207 155 300 299 170 155 158 65 Output: 2 ...

  2. struts+spring action应配置为scope="prototype"

    truts+spring action应配置为scope="prototype" <bean id="personAction" scope=" ...

  3. JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求

    JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求 哇,一看标题怎么这么长啊,其实意思很简单,哥讨厌用HTTP Client做POST与GET提交 觉得那个毕竟是别人写 ...

  4. bat programming is easy and powerful

    用linux的角度来思考windows,习惯了linux的shell后, 再来看windows的bat编程,就简单多了,简直就是理所当然 实际上windows的cmd命令行和linux的shell命令 ...

  5. javascript单例模式的理解

    javascript单例模式的理解 阅读目录 理解单例模式 使用代理实现单例模式 理解惰性单例 编写通用的惰性单例 单例模式使用场景 回到顶部 理解单例模式 单例模式的含义是: 保证一个类只有一个实例 ...

  6. 繁华模拟赛 Evensgn玩序列

    #include<iostream> #include<cstdio> #include<string> #include<cstring> #incl ...

  7. java笔记--关于线程死锁

    关于线程死锁 什么是死锁: 在编写多线程的时候,必须要注意资源的使用问题,如果两个或多个线程分别拥有不同的资源, 而同时又需要对方释放资源才能继续运行时,就会发生死锁. 简单来说:死锁就是当一个或多个 ...

  8. [Effective JavaScript 笔记]第61条:不要阻塞I/O事件队列

    js程序是构建在事件之上的.输入可能来自不同的外部源.在一些语言中,我们习惯地编写代码来等待某个特定的输入. var text=downloadSync('http://example.com/fil ...

  9. github student pack中的digital ocean可以使用银联卡支付

    申请了 github student pack却因为一直没有visita信用卡,而无法使用digital ocean的 $50,一直到今天,用中国银行借记卡成功支付. 方法是: (1)注册paypal ...

  10. 基础知识《零》---Java程序运行机制及运行过程

    Java运行机制 Java虚拟机(Java Virtual Machine):Java虚拟机可以理解成一个以字节码为机器指令的CPU:对于不同的运行平台,有不同的虚拟机:Java虚拟机机制屏蔽了底层运 ...