首先在介绍HTML5form表单的新增内容之前,我总结了一下HTML的form表单的内容。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>HTML表单标签</title> </head> <body> <input type="text"><!--输入文本,字符,数字一切东西--> <input type="password"><!--输入密码会以掩码的形式显示出来--> <input type="radio"><!--单选框--> <input type="checkbox"><!--复选框--> <input type="submit"><!--提交按钮--> <input type="reset"><!--重置按钮--> <input type="image"><!--可以改变按钮颜色的提交按钮--> <input type="hidden"><!--定义隐藏的输入字段--> <input type="file"><!--浏览按钮,用于上传文件--> <input type="button"><!--按钮--> <select name="" id=""><!--下拉列表--> <option value=""></option> <option value=""></option> <option value=""></option> </select> </body> </html>
接下来总结HTML5的form表单内容,我分为新增的form元素,新增的form属性,新增的input类型,新增的input属性四个部分。
1.新增的form元素
1)datalist元素
datalist与option联合使用,datalist元素通常通过list属性与一个input相关联,达到的效果就是我们既可以手动输出,也可以选择下拉列表中的选项。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>datalist的使用</title> </head> <body> <form action="#" method="get"> 请输入网址:<input type="text" list="url_data"> <datalist id="url_data"> <option label="百度" value="http://www.baidu.com"></option> <option label="腾讯" value="http://www.qq.com"></option> <option label="搜狐" value="http://www.sohu.com"></option> <input type="submit"> </datalist> </form> </body> </html>
2)keygen元素
keygen元素是秘钥对生成器,能够使用户验证更为可靠。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>keygen元素的使用</title> </head> <body> <form action="#" method="get"> 请输入用户名:<input type="text"><br> 请选择加密强度:<keygen/><br> <input type="submit"> </form> </body> </html>
3)output元素
output元素用于在浏览器中显示计算结果或脚本输出。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>output的使用</title> </head> <body> <form action="#" method="get" name="form"> <output name="output"></output> </form> <script> var a=parseInt(prompt("请输入第一个数:",0)); var b=parseInt(prompt("请输入第二个数:",0)); document.forms["form"]["output"].value=a*b; </script> </body> </html>
2.新增的form属性
1)autocomplete属性
新增的autocomplete属性可以帮组用户在form表单中的元素中实现自动完成内容输入,不过在使用这项功能之前需要先启用浏览器本身的自动完成功能,才能使用autocomplete属性。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>autocomplete属性的使用</title> </head> <body> <form action="#" method="get" autocomplete="on"><!--当浏览器开启自动补充功能时,autocomplete不写也自动补充,但是如果将autocomplete设置成为off,那么就算浏览器开启自动补充功能,也没有补充效果。--> 姓名:<input type="text" name="name"><br><!--注意name属性不能省去,否则form表单的autocomplete属性不起作用。--> 密码:<input type="password" name="pass"><br> 电子邮箱:<input type="email" name="email"><br> <input type="submit"> </form> </body> </html>
2)novalidate属性
form元素的novalidate属性用于在提交表单时取消整个表单的验证,即关闭对表单内所有元素的有效性检查。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>novalidate的使用</title> </head> <body> <form action="" method="get" novalidate="true"> 请输入正确的电子邮箱:<input type="email" name="user_email" > <input type="submit" value="提交"><!--点击提交没有浏览器自带的邮箱验证提示了--> </form> </body> </html>
3)formaction属性
等于action。
4)formenctype属性
等于enctype。
5)formmethod属性
等于method。
6)formnovalidate属性
等于novalidate。
7)formtarget属性
等于target。
3.新增的input类型
1)email类型
再提交表单的时候浏览器会自动验证填写的邮箱是否正确。
<input type="email" name="email" />
2)url类型
提交表单的时候,输入的内容时url地址格式的内容,则将数据提交到服务器,如果不是就不允许提交,url地址格式例子:http://www.baidu.com。
<input type="url" name="url"/>
3)number类型
这是一个只能输入数值的输入框,其中的属性可以有min,max,step。
<input type="number" name="number" min="1" max="20" step="4"/>
4)range类型
输出一定范围内数字值的文本框
<input type="range" name="range" min="1" max="20" step="4"/>
5)date类型
输出年,月,日,如2017年6月6日会以2017-06-06显示。
<input type="date" name="date"/>
6)month类型
输出月,年
<input type="month" name="month"/>
7)week类型
输出周,年
<input type="week" name="week"/>
8)time类型
输出小时,分钟
<input type="time" name="time" max="" min="" step="" value=""/>
9)datetime类型
输出选取的时间,日,月,年,其中时间为UTC时间。
<input type="datetime" name="datetime"/>
10)datetime-local类型
同datetime,但是其中时间为本地时间。
11)search类型
用于输入搜索关键词的文本框。
<input type="search" name="search"/>
12)tel类型
用于输入电话号码的文本框,但他不限定制输入数字,也包括+,-,(,)等等。
<input type="tel" name="tel"/>
13)color类型
用于设置颜色的文本框.
<input type="color" name="color"/>
4.新增的input属性
1)autocomplete属性
在上面的form元素上的autocomplete属性是全局的,我们也可以在一个input元素上单独使用让这个元素自动补充或是不补充。
<input type="text" autocomplete="off/on"/>
2)autofocus属性
用于自动获取光标焦点.一般在搜索页面中的搜索文本框,或者一个同意某许可协议的同意按钮。
<input type="text" autofocus="true"/>
3)width和height属性
仅用于image类型的高度和宽度的设置。单位是像素。
<input type="image" src="img/haha.png" width="50" height="50"/>
4)list属性
和datalist搭配使用,在datalist有详细介绍。
5)min,max,step属性
适用于date,picker,number,range属性的input标签。
6)multiple属性
input中file只支持单个文件的上传,multiple属性支持一次性选择多个文件。
<input type="file" multiple="multiple"/>
7)pattern属性
用于验证input类型输入狂汇总用户输入的内容是否于自定义的正则表达式相匹配,适用于text,url,tel,email,password。
<input type="text" pattern="[0-9]{6}"/>
8)placeholder属性
用于为input类型的输入框提供一个提示,这些提示可以给用户一些提示性语言。
<input type="tel" placeholder="请输入电话号码"/>
9)required属性
告诉用户这个输入框的内容不能为空。
<input type="text" required/>