Html5 学习系列(三)增强型表单标签
引言
在之前的HTML表单标签中,对于一些功能支持的不够好,比如:文本框提示信息(之前只能通过js和input的事件结合处理)、表单校验、日期选择控件、颜色选择控件、范围控件、进度条、标签跨表单等功能。当然这些东西我们都可以直接通过js和dom元素配合实现这些通用的功能。这些功能或者是标签都已经大量的使用在了现代的Web应用中,而这些公共性的东西在早期的HTML标准没有直接的标准支持,而在HTML5中,新标准直接把这些常用的基本的功能直接加入的新的表单标签中,真正把表单功能异常的强大,那就跟我走一下HTML5智能表单之旅吧!
由于最新版本的Opera浏览器对新型表单支持的最为完美,所以建议本blog或者以下示例请在Opera浏览器上打开.
HTML5新增加表单标签
新的标准中添加了很多输入型控件,比如:Number、URL、Email、Range、Color等。而他们都是以 input标签的type属性出场,那下面我一一简单介绍一下。[以下所有的例子请用Opera浏览器浏览]
1)只能输入数字的Number类型input标签
Html代码为:<input type="number" name="demoNumber" min="1" max="100" step="2"/>
运行效果:
注:此标签其实就是普通的input标签,只不过是type类型指向了number,标识当前标签接受数字类型输入.另外添加了四个属性.
name:属性大家很熟悉了用来标识表单提交时的key值
min:是表单标签新增加的属性标识当前输入框输入的最小值
max:那就是最大值了
step:是步长的意思,也就是在点击增大或者减小的时候的增加减少的步长
小结:min,max,step是表单标签中添加的新的属性。另外就是type又增加了一个新的number类型,接受数字输入。而之前我们要做到这样的效果只能通过js在失去焦点时候判断,控制起来不那么方便,现在一切都那么简单简洁。
2)新型Email类型input标签
Html代码:<input type="email" name="email" placeholder="请输入注册邮箱" />
运行效果:
注:在上面HTML代码中,相对于之前的标签,不同点:type="email"表示当前input标签接受一个邮箱的输入。另外就是:placeholder="请输入注册邮箱" 这个属性的功能,相信你看到此时的效果的时候你会感到非常想兴奋,而在之前实现此提示信息,需要监听一下文本框的blur事件,然后判断是否为空,为空再去给文本框赋值一个灰色的字体提示信息,而现在只需要一个简单属性指定就可以了,浏览器都帮我们实现了。
小结:当表单在提交前,此文本框会自动校验是否符合邮箱的正则表达式,另外placeholder属性带来的提示信息功能太强大了。
3)新型Url类型input标签
这里不再赘述了,跟Email类型input标签类似。只看一效果吧:
Html代码:<input type="url" placeholder="请输入网址" name="url" />
运行效果:
4)新型Tel类型input标签
Html代码:<input type="tel" placeholder="输入电话" name="phone"/>
运行效果:
5)新型range类型input标签
Html代码:<input type="range" min="0" max="50" step="5" name="rangedemo" value="0" />
运行效果:
此类型标签的加入,输入范围内的数据变得非常简单容易,而且非常标准,用户输入可感知体验非常好。另外此标签可以跟表单新增加的Output标签一块使用,达到一个联动的效果。看demo源码:
<form action="" method="POST" id="form1"><input type="range" min="0" max="50" step="5" name="rangedemo" value="0" /><output onforminput="value=rangedemo.value">0</output></form>
运行效果:
6)新的日期、时间、月份、星期input标签
相信你如果做过相关的Web项目开发,肯定会遇到相关的js日期控件。而一系列版本问题,使用不方便等问题将一去不复返,因为…看下面的标签吧:
Html代码:<input type="date" name="datedemo" />
运行效果:
还有其他的type:month(月) 、time、week、datetime-local、datetime。那赶紧实验一下吧。
7)颜色选择input标签
颜色选择器实现起来还是有点困难的,而现在一切都变得那么简单。且看代码:
Html代码:<input type="color"/>
运行效果:
8)input标签自动完成功能
如果您有一定的开发经验的话,肯定做过相关的自动完成或者输入提示功能。那这将不再那么复杂,简单几个标签就自动实现此功能,请看如下demo:
<input type="text" autocomplete="on" name="demoAutoComplete" list="autoNames" />
<datalist id="autoNames"><option value="飞龙天惊" ></option><option value="厚德IT" ></option><option value="Flydragon" ></option>
</datalist>
执行结果:
HTML5表单新增属性
Input标签新增加的特有属性
- 1)autofocus属性
demo:<input type="text" autofocus="autofocus"/> 此属性可以设置当前页面中input标签加载完毕后获得焦点。
- 2)max,min,step这些上面都介绍过了,都是跟数字相关。
- 3)placeholder:提示信息属性,上面有demo。
- 4)multiple:用于文件上传控件,设置此属性后,允许上传多个文件。
- 5)校验属性:设置了required 属性后预示着当前文本框在提交前必须有数据输入,而这一切都是由浏览器自动完成。
这跟使用Jq Validate的时候一样的爽。而且还添加了:pattern正则表达式的校验。
demo:input type="text" autofocus="autofocus" required pattern="\d+" />
- 6)另外一个比较大的改进就是增加了form属性,也就是说,任何一个标签都可以指定它所属于一个表单,而不是必须在<form></form>进行包裹了。
- 且看demo:<input type="text" form="demoForm" name="demo"/>
Form表单标签新增加属性
- 1)novalidate 属性规定在提交表单时不应该验证 form 或 input 域。
demo:<
form
action
=
""
method
=
"POST"
novalidate
=
"true"
></form>
2)autocomplete 属性规定 form 或 input 域应该拥有自动完成功能
。
综合性实例
<fieldset><legend>只能表单演示:请用最新Opera 浏览器</legend><form action="" method="POST" id="form1"><input type="text" autofocus="autofocus" required pattern="\d+" name="auto" placeholder="必填项测试" /><input type="number" name="demoNumber" min="1" max="100" step="2" /><input type="email" placeholder="请输入邮箱" name="mail" /><input type="url" name="url" placeholder="输入正确的网址" /><br />日期:<input type="datetime" name="time" />颜色:<input type="color" name="color" /><br /><br /><input type="range" min="0" max="50" step="5" name="rangedemo" value="0" /><output onforminput="value=rangedemo.value">0</output><br /><input type="submit" value="提交表单" /></form>表单外的input标签:<input type="text" form="form1" name="demo" /></fieldset>
执行结果:
由于部分属性不能正常提交到博客园后台,上一张图片加源码:
图片:
实际运行情况:
只能表单演示:请用最新Opera 浏览器
日期: 颜色:
0
表单外的input标签:
总结
在新版本的表单中的确添加了很多令人兴奋的功能。其实进步不是特别大,只不过是把之前的常用的功能,加入到了标准中来定义,然后浏览器帮我们实现了很多我们原先需要自己用js实现的一些功能罢了。但是对于开发者来说,这的确是很不错的一件事情。
Html5 学习系列(三)增强型表单标签相关推荐
- bootstrap学习(三)表单
bootstrap学习(三)表单 基本实例: from-group:可以是其内的标签排列更好 from-control:使标签宽度为100% <form><div class=&qu ...
- HTML/CSS学习笔记02【表单标签】
w3cschool菜鸟教程.CHM(腾讯微云):https://share.weiyun.com/c1FaX6ZD HTML/CSS学习笔记01[概念介绍.基本标签.表单标签][day01] HTML ...
- html表单中默认选中的值,前端学习笔记一一HTML表单标签(form)
form表单细节 一.表单 1.表单 标签用于为用户输入创建 HTML 表单 2.表单能够包含 input 元素,比如文本字段.复选框.单选框.提交按钮等等. 3.表单还可以包含 menus.text ...
- Struts2学习笔记__其他表单标签checkboxlist
checkboxlist标签 checkboxllist标签可以一次创建多个复选框,相当于多个<input type="checkbox"标签> ,它根据list属性指 ...
- django ajax form表单,Django学习系列之Form表单和ajax(示例代码)
昵 称: 生 日: 性 别: 男 女 地 址: 手 机 号: 邮 箱: [修改] {% csrf_token %}$(\'#js ...
- HTML5学习(三):布局标签、列表、超链接和id
1.布局标签 header表示网页的头部(页眉) main表示网页的主体部分(一个页面中只会有一个main) footer表示网页的底部(页脚) nav表示网页中的导航 aside和主体相关的其他内容 ...
- HTML保姆级教程(三)表单标签
- SpringMVC:学习笔记(5)——数据绑定及表单标签
SpringMVC--数据绑定及表单标签 理解数据绑定 为什么要使用数据绑定 基于HTTP特性,所有的用户输入的请求参数类型都是String,比如下面表单: 按照我们以往所学,如果要获取请求的所有参数 ...
- Struts2 表单和非表单标签
学习内容 Struts 2表单标签 Struts 2非表单标签 能力目标 熟练使用Struts 2表单标签开发表单 熟练使用Struts 2非表单标签 本章简介 上一章讲述了ognl和Struts2标 ...
- Day46(列表标签,表格标签,表单标签,css的引入方式,css选择器)
一.列表标签 列表标签分为三种. 1.无序列表<ul>,无序列表中的每一项是<li> 英文单词解释如下: ul:unordered list,"无序列表"的 ...
最新文章
- python的sklearn机器学习SVM中的NuSVC运行报错:ValueError: b'specified nu is infeasible'
- 计算机密码行业专题研究:网络安全最大弹性领域
- python的下载和安装步骤-PyCharm下载和安装详细步骤
- JavaScript Repeater 模板控件
- 关于AttributeError:‘Flask‘ object has no attribute ‘ensure_sync‘的报错解决
- DWZ-JUI 树形Checkbox组件 无法一次获取所有选中的值的解决方法
- GCC 编译时优化某一个或几个函数或者不优化某一个或几个函数
- 这篇Redis文章,图灵看了都说好
- 【CodeForces - 608C】Chain Reaction (二分 或 dp ,思维)
- 创建mysql数据库快照_数据库教程
- MYSQL相关学习-常用语句
- Youki的笔记本重装系统的方法~
- 网络中延迟对主观感受的影响
- hdu 3600 Simple Puzzle (判断N 数码是否有解)
- Linux操作系统中pkg-config用法示例
- c语言根据元素位置读取元素,jquery1.5.1中根据元素ID获取元素对象的代码
- Hexagon DSP系列记录(二)——写Hexagon DSP程序流程
- Java 导出时序折线图到Excel
- 怎么使用山东鼎信发送短信验证码
- 【SDOI2010】【BZOJ1924】所驼门王的宝藏
热门文章
- paip.支付宝即时到账接口改双功能接口.txt
- paip.提升效率--输入框不能粘贴的问题
- 京东程序员回应“被猝死”;淘宝特价版已提交微信小程序;苹果 M1 单核性能勇超 Intel 11 代 i7...
- 逆袭?或将掌舵万亿SaaS巨头的Taylor竟是“天选之人”
- 毕设题目:Matlab树叶识别
- 【图像压缩】基于matlab GUI DCT图像压缩【含Matlab源码 842期】
- 【图像隐写】基于matlab GUI LSB图像隐写【含Matlab源码 713期】
- 【雷达通信】基于matlab雷达数字信号处理【含Matlab源码 281期】
- 【优化求解】基于matalb改进的遗传算法GA求解城市交通信号优化问题【含Matlab源码 214期】
- canvas贝塞尔曲线爱心_HTML5 Canvas 绘制贝塞尔曲线 Bezier and quadratic curves