HTML5表单
1.placeholder
placeholder="e.g. King Kong"
只需在input元素中加入placeholder属性,其属性值就会默认显示为占位符文字,输入框获取焦点时该文字自动消失。当输入框失去焦点且没有任何输入值时,占位符文字则会再次显示。
2.required
required aria-required="true"
在input元素中追加布尔类型的属性required(也就是说你可以选择追加或不追加该属性),则表明该表单域为必填项。如果表单提交时该必填项没有任何信息,浏览器则会显示警告信息。警告信息的显示方式(包括显示的内容和样式)取决于浏览器与输入框类型。除了HTML5的required属性,我们的例子中还追加了一个等价的WAI-ARIA属性:aria-required="true"。如果没有特殊原因,建议为输入框追加WAI-ARIA版的必填属性以方便屏幕阅读器用户。
required属性可用于多种类型的输入元素,以确保表单域必须输入值。range、color、button和hidden类型的输入元素则不能使用required,因为这几种输入类型几乎都有默认值。
3.autofocus
HTML5的autofocus属性可以让表单在加载完成时就有一个表单域被默认聚焦(或选中),以便用户输入。
使用该属性时要小心。如果有多个表单域都被追加了autofocus属性,则会造成浏览器混乱。例如有多个表单域追加了autofocus属性,在Chrome(v16)中会聚焦最后一个使用autofocus属性的表单域,而Firefox(v9)恰恰相反,会聚焦第一个使用autofocus的表单域。
还有一点需要注意,有些用户会使用空格键让网页内容向下滚动。如果网页的表单中含有带autofocus属性的表单域,则会阻止空格键的默认行为,这时敲击空格键会向已聚焦的输入框中输入空格。
4.autocomplete
很多浏览器默认提供自动完成功能以帮助用户输入。以往用户可以在浏览器设置中打开或关闭这项功能,现在我们还能告知浏览器我们不想在某个表单或表单域上使用自动完成功能。这不仅仅能保护敏感数据(例如银行账户),还可以让你确保用户用心填写表单,手工输入一些值。比如以前在填写表单时,如果需要填写手机号码,大部分都选择输入一个假号,但也能保证如果在相关的输入项上禁用自动完成功能,那用户肯定不会输入一个假号码。
<input id="tel" name="tel" type="tel" placeholder="1-234-546758" autocomplete="off" required aria-required="true">
我们也可以通过给表单本身设置属性来禁用整个表单的自动完成功能。
<form id="redemption" method="post" autocomplete="off">
5.list(及对应的datalist元素)
list属性以及对应的datalist元素可以让用户在输入框中开始输入值的时候,显示一组备选值。如下示例代码:
<div>
<label for="awardWon">Award Won</label>
<input id="awardWon" name="awardWon" type="text" list="awards">
<datalist id="awards">
<select>
<option value="Best Picture"></option>
<option value="Best Director"></option>
<option value="Best Adapted Screenplay"></option>
<option value="Best Original Screenplay"></option>
</select>
</datalist>
</div>
list属性中的值(awards)同时也是datalist元素的id。这样就可以让datalist与输入项关联起来。虽然将opinion包裹在select中不是必需的,但这样做便于为老版本浏览器提供降级方案。
list输入框不会阻止用户输入自己想输入的内容,不过它为我们提供了一种便利的方式来添加输入提示功能,增强用户体验。
6.HTML5的新输入类型
HTML5新增了很多输入类型,它们最大的作用就是可以限制用户输入的类型,不需要引入额外的JavaScript代码。而且在那些不支持新特性的浏览器中,它们会降级显示为一个标准的文本输入框。此外还有很多的腻子脚本可以让那些老版本浏览器也跟上时代。
6.1 email
type="email"——支持它的浏览器会期望用户的输入匹配电子邮箱的格式。
<input type="email">
当提交一个不符合格式的输入值时,浏览器会生成警告。此外,许多触摸屏设备会根据输入类型改编键盘模式。
6.2 number
type="number"——支持该特性的浏览器期望输入一个数字。这种输入类型默认还提供控制按钮,允许用户简单地点击向上或向下来改变数值。
<input type="number" min="1929" max="2015">
6.3 url
type="url"——URL输入类型用于输入URL地址。与tel和email输入类型相似,他看起来和标准的文本输入框一样。不过有些浏览器会在提交不合法的URL时显示特定的警告信息。
<input id="web" name="web" type="url" placeholder="www.mysite.com">
和type="email"一样,触摸屏设备也会为URL输入框修改键盘模式。
6.4 tel
type="tel"——是另一种用于收集联系人信息的输入类型。tel表示表单域期望输入一个电话号码。
6.5 search
type="search"——和普通文本输入框的表现基本一样,仅在个别浏览器中渲染得有点细微差别。
6.6 pattern
pattern=""——这句话用来描述正则表达式。可以用pattern属性通过正则表达式来定义表单域的数据格式。示例代码如下:
<input id="name" name="name" pattern="([a-zA-Z]{3,30}\S*) + [a-zA-Z]{3,30}" placeholder="Dwight Schultz" required aria-required="true">
在patter属性中放置一个正则表达式,支持该特性的浏览器就会按照指定格式验证输入值。当和required属性组合使用时,一旦输入不符合格式的值,浏览器就会有相应的警告信息。
6.7 color
type="color"——会在支持该特性的浏览器中生成一个颜色选择器,让用户可以选择十六进制的颜色值。示例代码如下;
<input id="color" name="color" type="color">
目前很少有浏览器支持该特性,好像只有Opera(v11)支持。如果浏览器默认的颜色选择器中没有所需的颜色,点击下面的Other...按钮就会打开操作系统默认的颜色选择器。
7.日期和时间输入类型
7.1 date
示例代码如下:
<input id="date" name="date" type="date" />
和color类型一样,目前对date提供原生支持的浏览器寥寥无几,大多数浏览器默认都将其渲染为标准的文本输入框。Opera已经实现了这个功能。
7.2 month
示例代码如下:
<input id="month" name="month" type="month">
选择器界面允许用户选择某个月,输入框中会被填充为年和月组成的值,如2015-07.
7.3 week
示例代码如下:
<input id="week" type="week" name="week">
使用week类型时,选择器允许用户选择一年中的某一周,输入框中会被填充格式如2015-W47这样的数据。
7.4 time
示例代码如下:
<input id="time" name="time" type="time">
time输入类型允许输入一个24小时制的时间值,如23:50.
7.5 datatime 和 datatime-local
示例代码如下:
<input id="datatime" name="datatime" type="datatime">
日期选择器在IOS设备上的显示效果更好。
日期选择器会生成一个由日期、时间和时区组成的值,日期与时间之间用I分割,使用z表示协调世界时,使用正负值表示时区偏移。协调世界时的2009年10月25日显示如下:
2009-10-25T05:05:00z
datatime-local输入类型和datatime几乎完全一样,只是省略了时区信息。
7.6 range
range输入类型会生成一个滑动条。示例代码如下:
<input id="howYouRateIt" name="howYouRateIt" type="range" min="1" max="10" value="5">
range输入类型最大的一个问题是它从来不给用户显示当前的输入值。虽然滑动条仅被设计用来选择模糊的数值,但我还是经常想看看它的当前值。使用HTML5目前无法解决这个问题,但是如果你确实需要显示滑动条的当前输入值,可以通过JavaScript来实现。将上面的代码稍作修改:
<input id="howYouRateIt" name="howYouRateIt" type="range" min="1" max="10" value="5" onchange="showValue(this.value)"><span id="range">5</span>
接下来再将下面这段JavaScript代码加入页面:
<script>
function showValue(newValue)
{
document.getElementById("range").innerHTHML=newValue;
}
</script>
8.如何给不支持新特性的浏览器打补丁
首先下载Webshims Lib(https://github.com/aFarkas/webshim/downloads)并解压。然后将其中的js-webshim文件夹复制到相应的位置。代码如下:
<script src="__PUBLIC__/jquery.min.js"></script>
<script src="__PUBLIC__/js-webshim/minified/extras/modernizr-custom.js"></script>
<script src="__PUBLIC__/js-webshim/minified/polyfiller.js"></script>
<script>
//加载补丁
$.webshims.polyfill();
</script>
HTML5表单的更多相关文章
- 实现跨浏览器html5表单验证
div:nth-of-type(odd){ float: left; clear: left; } .origin-effect > div:nth-of-type(even){ float: ...
- html5表单验证
表单验证为终端用户检测无效的数据并标记这些错误,是一种用户体验的优化. 下面展现浏览器自带的验证功能也可在移动端中查看: HTML部分: <!DOCTYPE html> <html ...
- Ideal Forms – 帮助你建立响应式 HTML5 表单
Ideal Forms 是建立和验证响应式 HTML5 表单的终极框架.它刚刚发布 V3 版本,更小,更快,更具可扩展性.它支持实时验证,完全自适应(适应容器,没有 CSS 媒体查询需要),键盘支持, ...
- HTML5学习总结-05 HTML5表单
一 HTML5 新的类型 HTML5 拥有多个新的表单输入类型.这些新特性提供了更好的输入控制和验证. email url number range Date pickers (date, month ...
- html5 表单样式 表单验证1 2 3
html5 表单样式 ie9以下不支持 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- HTML5跨浏览器表单及HTML5表单的渐进增强
HTML5跨浏览器表单 http://net.tutsplus.com/tutorials/html-css-techniques/how-to-build-cross-browser-html5-f ...
- HTML5表单提交和PHP环境搭建
HTML5表单提交相关内容和PHP环境搭建需要的软件(只备注) (2)举例介绍 (3)PHP环境搭建
- HTML5表单及其验证
随笔- 15 文章- 1 评论- 115 HTML5表单及其验证 HTML表单一直都是Web的核心技术之一,有了它我们才能在Web上进行各种各样的应用.HTML5 Forms新增了许多新控件及其A ...
- HTML5表单新属性
HTML5表单新属性 autofocus 自动聚焦 <input type="text" autofocus> placeholder占位文本 tel ...
- HTML5 表单元素和属性
HTML5 表单元素和属性学习 版权声明:未经博主授权,内容严禁转载 ! 表单元素简介 无论实现提交功能还是展示页面功能,表单在HTML中的作用都十分重要. 在其他版本的HTML中,表单能够包含的元素 ...
随机推荐
- Mac中安装Vim7.4
Mac上的Vim Mac本身其实是预装了Vim的,但是目前的系统中都是Vim7.3版本的,而最新的Vim已经是7.4版了,因此为了能够使用最新版的vim,必须要对Mac中的vim要么升级,要么重装.在 ...
- Servlet.init() for servlet springMvc
- 【安装MongoDB】CentOS7 下安装NodeJs+Express+MongoDB+Redis
MongoDB,V3.2版本,官网说的很详细,见链接:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 1.创建 ...
- jQuery插件写法总结以及面向对象方式写法总结
前两个是jQuery插件,后面2个是以对象的形式开发,都类似. 写法一 (function($, window){ // 初始态定义 var _oDialogCollections = {}; // ...
- thinkphp 3.23语言包加载
模块home: 1.config 里添加 配置 //'配置项'=>'配置值' 'LANG_SWITCH_ON' => true, // 开启语言包功能 'LANG ...
- 【Java EE 学习 29 上】【PL/SQL】【存储过程】【存储函数】【触发器】
一.PL/SQL简介 1.概念:PL/SQL语言是Oracle数据库专用的一种高级程序设计语言,是对标准SQL语言进行了过程化扩展的语言. 2.功能:既能够实现对数据库的操作,也能够通过过程化语言中的 ...
- ASP.NET Web API 提升性能的方法实践
ASP.NET Web API 是非常棒的技术.编写 Web API 十分容易,以致于很多开发者没有在应用程序结构设计上花时间来获得很好的执行性能. 在本文中,我将介绍8项提高 ASP.NET Web ...
- DevExpress的GridControl的实时加载数据解决方案(取代分页)
http://blog.csdn.net/educast/article/details/4769457 evExpress是一套第三方控件 其中有类似DataGridView的控件 今天把针对Dev ...
- 在Jenkins中获取GitHub对应Repository的Resource Code
1):Install Jenkins 请看如下链接: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins 2):Install ...
- hdu2196 树形dp
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2196 Problem Description A school bought the fi ...