HTML5新增元素、属性以及表单,正则表达式
来源:互联网 发布:c盘里面的windows.old 编辑:程序博客网 时间:2024/06/01 09:43
HTML5新增元素及其属性
HTMl5新增标签,有语义,可以更容易被搜索到。
常见的有以下几种标签元素,所有的新增元素可以w3cschool手册查看。
HTML5新增结构元素
结构标签具体用法不详细描述。
HTML5新增网页元素
video,audio和canvas后面再具体详细描述。
mark
<p>测试<mark>mark</mark>标签</p>
datalist
<input type="text" list="test"> <datalist id="test"> <option value="1">the first</option> <option value="2">the second</option> <option value="3">the third</option> </datalist>
选择后value的值会填入text框,后面的可以是对值的说明。
progress
<p><progress ></progress></p> <p><progress value="20" max="100"></progress></p>
上面没有填属性的对应对第一个样式,是动态的
第二个样式是有值的情况下对应的进度条
time
不多说了,主要是语义化。
HTML5废除的元素
- 能用CSS替代的元素:
<big> <center> <font> <s> <u> <strike>
等 - 不再使用frame框架
- 只有部分浏览器支持的元素:
<applet> <blink> <bgsound> <marquee>
等 - 其他被废除的元素:
<rb> <dir> <isindex> <listing> <nextid>
等
HTML5新增全局属性
<p>contenteditable</p> <p contenteditable="true">可编辑的行</p> <p>hidden</p> <p hidden="hidden">被我隐藏了</p> <p>tabindex</p> <p> <input type="text" tabindex="3"> <input type="text" tabindex="2"> <input type="text" tabindex="1"> </p> <p></p> <!-- <script> document.designMode="on";//打开全部可编辑 document.designMode="off";//关闭全部可编辑 </script> -->
HTML5新 增表单元素及其运用
HTML5新增input类型
新增input属性
validityState对象
Validity属性获取表单元素的validityState对象,改对象包括8个方面的验证结果 var validityState=document.getElementById("uName").validity;
HTML5中querySelector()来获取元素
valueMissing
目的:确保表单中的值已填写
用法:将表单元素设置了ruquired特性,则为必填项;如果必填项输入值为空,valueMissing属性会将返回true,否则返回false。 <input type="text" required="required"/>
typeMismatch
目的:保证输入值与预期类型相匹配(url、email等)
用法:指定表单控件的type特性值,如输入值不符合对应的表单类型,typeMismatch属性会将返回true,否则返回false。
patternMismatch
目的:根据表单元素设置的格式规则验证输入是否为有效格式
用法:在表单元素的上设置pattern特性,并赋予适当的匹配规则,如输入值不符合验证模式规则,patternMismatch属性会将返回true,否则返回false。
setCustomValidity,提示内容
invalid 事件:只要发生表单验证,所有未通过验证的表单元素都会触发一个invalid事件。
<div class="body"> <form action="#" method="post"> <h2><span></span>注册账号</h2> <div class="table"> <div class="table-row"> <div class="table-cell"><label for="nickname"><span>*</span>昵称:</label></div> <div class="table-cell"><input type="text" autofocus="autofocus" placeholder="英文、数字长度为6-10个字符" name="nickname" id="nickname" required pattern="[A-z0-9]{6,10}"></div> </div> <div class="table-row"> <div class="table-cell"><label for="password"><span>*</span>密码:</label></div> <div class="table-cell"><input type="password" placeholder="长度为6-16个字符" name="password" id="password" required pattern="[A-z0-9]{6,16}"> </div> </div> <div class="table-row"> <div class="table-cell"><label for="tel"><span>*</span>手机号码:</label></div> <div class="table-cell"><input type="tel" placeholder="以13|14|15|17|18开头" name="tel" id="tel" required pattern="^1[34578][0-9]{9}$"> <span class="tel-tip">忘记密码时可用手机号找回密码</span></div> </div> <div class="table-row"> <div class="table-cell"><label for="email"><span>*</span>邮箱:</label></div> <div class="table-cell"><input type="email" name="email" id="email" required></div> </div> <div class="table-row"> <div class="table-cell"><label for="age">年龄:</label></div> <div class="table-cell"><input type="age" name="age" id="age"></div> </div> <div class="submit-box"> <button id="submit">立即注册</button> </div> <div style="height:1px;"></div> </div> </form> </div> <script> var form = document.querySelector("form"); form.addEventListener("invalid", function (e) { var target_element = e.target; var valid = target_element.validity; var name = target_element.name; switch (name) { case "nickname": if (valid.valueMissing) { target_element.setCustomValidity('昵称不能为空'); } else if (valid.patternMismatch) { target_element.setCustomValidity('昵称必须为英文、数字长度为6-10个字符'); } else { target_element.setCustomValidity(""); } break; case "password": if (valid.valueMissing) { target_element.setCustomValidity('密码不能为空'); } else if (valid.patternMismatch) { target_element.setCustomValidity('密码长度必须为6-16个字符'); } else { target_element.setCustomValidity(""); } break; case "tel": if (valid.valueMissing) { target_element.setCustomValidity('手机号不能为空'); } else if (valid.patternMismatch) { target_element.setCustomValidity('请输入正确的手机号'); } else { target_element.setCustomValidity(""); } break; case "email": if (valid.valueMissing) { target_element.setCustomValidity('y邮箱不能为空'); } else if (valid.typeMismatch) { target_element.setCustomValidity('请输入正确的邮箱'); } else { target_element.setCustomValidity(""); } break; default: break; } }, true) </script>
valid伪类
input:valid 验证通过的样式,如上图红色框框
input:invalid 验证未通过的样式,如上图绿色框框
正则表达式
正则表达式
又称正规表示法、常规表示法:使用单个字符串来描述、匹配一系列符合某个句法规则。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
RegExp对象用于规定在文本中检索的内容
测试工具:http://tool.oschina.net/regex/
使用正则表达式
新建一个RegExp对象: var reg=/pattern/attributes;
var reg=new RegExp(pattern,attributes);
修饰符:
- i:执行对大小写不敏感的匹配;
- g:执行全局匹配 (查找多有匹配而非在找到第一个匹配后停止);
- m:执行多行匹配。
正则表达式量词详见w3cschool手册
常用方法:
String类中可以支持正则的方法:
表单验证
表单提交时会触发submit事件
当submit事件返回false时可以阻止提交
第一种方式
<form action="#" method="post" onsubmit="return validate();" id="from"> <input type="submit"> </form> <script> function validate(){ return false; //false 会传到onsubmit上 } </script>
第二种方式
<form action="#" method="post" id="form"> <input type="submit"> </form> <script> var form = document.querySelector("#form"); form.addEventListener("submit", function (e) { e.preventDefault(); //阻止事件发生 }, true) </script>
本博客仅用于记录web前端学习情况
- HTML5新增元素、属性以及表单,正则表达式
- HTML5表单新增元素与属性
- HTML5表单新增元素与属性
- HTML5表单新增元素与属性
- HTML5表单新增元素与属性
- HTML5表单新增元素与属性
- HTML5 表单新增元素与属性
- HTML5新增表单元素及属性总结
- HTML5表单相关新增元素和属性
- HTML5-表单相关新增元素和属性
- HTML5表单相关新增元素和属性
- HTML5表单新增元素和属性(1)
- HTML5表单新增元素和属性(2)
- html5表单新增元素属性2
- HTML5-表单新增元素和属性
- HTML5 表单新增元素与属性
- HTML5新增表单元素
- html5篇——新增表单元素和表单属性
- 一起学Kotlin(4)
- 读前辈的大话设计模式(六)之工厂方法模式,抒自己的读后感
- Window的scrollX、innerWidth、outerWidth
- C++类的内存地址存放问题
- PHP 脚本文件使用 “#!/usr/bin/env php” 并执行时提示 No such file or directory
- HTML5新增元素、属性以及表单,正则表达式
- Hadoop中 MapReduce中InputSplit的分析
- SDUT-数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历
- git的常用操作(克隆到本地和推送到远程仓库)
- 分配排序之--计数排序
- 【caffe】使用draw_net绘制net结构
- HDU 1394 线段树统计逆序对 解题报告
- 安装mysql遇到服务已经存在的错误
- ios------app跳转到appStore评分