引入
HTML5表单提高了可用性,降低了对JavaScript验证的依赖性。
input
1,type属性-唯一必需输入属性
默认type="text"
使用html5,type属性有23种可能的值,如果不支持一个新输入,默认就是text
2,required属性-标记一个表单字段是必须的
支持required属性的浏览器也支持:required和:invalid伪类,可以通过视觉提醒。
为了提高可访问性,包含required属性,就要包含ARIA属性。
<input type="tel" name="phone" required aria-required="true"/>
3,min 和 max 属性-设置允许值范围
只能用于日期或时间输入,number或range
例如:
<label>Reservation Time:
<input type="time" min="17:00" max="22:00" name="dinner" required>
</label>
4,step属性
为用户页面提供微调组件,按照step的值逐渐增加。
range-滑块
number-上下调整数字组件
<p>
<label for="cost_1">Price:</label>
<input id="cost_1" type="range" min="5" max="100" step="5" name="cost_1"/>
</p>
<p>
<label for="cost_2">Price:</label>
<input id="cost_2" type="number" min="5" max="100" step="5" name="cost_2" required="required" />
</p>
4,placeholder属性-占位文本,给用户关于输入的简短提示
一旦开始数据输入,占位文本就消失。
5,pattern属性-哪里允许placeholder,哪里就支持pattern属性。包含一个关于JavaScript的正则表达式。
比如:点击颜色,会弹出选择颜色的小工具。
<label for="color">Color:</label>
<input type="color" name="color" placeholder="#FFFFFF" pattern="#[0-9A-Za-z]{6}"
id="col" title="a hash sign followed by six hexadecimal digits"/>
<hr size="1" />
<label for="cc">Credit Card:</label>
<input type="text" name="cc" placeholder="credit Card"
id="cc" title="13-16 number" pattern="[0-9]{13,16}">
6,readonly属性-表单控件不可编辑
7,disabled属性-禁用一个表单元素,无法得到焦点
8,maxlength-输入最大长度,适用于text,password,url,search,telephone,email,textarea
9,size属性-古老属性
10,form属性-表单控件希望关联的form的id
<form id="form1">
<!--当form1提交的时候,userid将与表单一起发送出去-->
</form>
<p>
<label for="userid">User ID:</label>
<input type="text" name="userid" form="form1">
</p>
11,autocomplete属性-是否为表单特定字段打开自动完成功能
三个值:on,off,default
12,autofocus属性-指定在页面载入时获得焦点
13,value-显示在文本框中,但不推荐
14,password-密码栏
如果要索要密码,使用SSL的POST方法
14,checkbox-复选框
<p>
<label>Checkbox:</label>
<input type="checkbox" value="true" name="remember"/>
</p>
其中的name,value将作为键值对被提交。
15,radio-单选按钮
一组单选框,name名相同,只能选择一个。
16,submit-提交按钮
居中显示value属性的按钮
17,reset-重置按钮
18,file-选择文件按钮
19,hidden-隐藏
20,image-接受img的所有属性
21,button-按钮
HTML5为input新增的值:
13个值:
search
tel
url
email-支持multiple属性,允许用多个逗号分隔的电子邮件地址
datetime
data
month
week
time
datatime-local:本地时间-month,time,week
number-数字
range-滑动条
color-拾色器
表单验证
HTML5通过validity引入了8种表单控件:
element.validity.valueMissing
element.validity.typeMissmatch
element.validity.patternMissmatch
element.validity.tooLong
element.validity.rangeUnderflow
element.validity.rangeOverflow
element.validity.stepMismatch
element.validity.valid
element.validity.customError
UI上可以使用webkit的验证气泡,设计样式例如必须填写的表单控件后面加上<span class="required">*</span>
CSS 还有一些伪类:
input:required
input:invalid
input:valid
input:read-only
input:checked
新的表单元素
5个新增的表单元素:
<datalist>
<output>
<keygen>
<progress>
<meter>
datalist元素以及list属性
input新增的list属性,还可以提供给用户一个值的列表。例如:
datalist与option配合,option是其选项,输入文本中含有option-value值得内容会呈现。
<p>
<label for="userid">User ID:</label>
<input type="text" name="userid" placeholder="name"
required list="animalnames"/>
</p>
<datalist id="animalnames">
<option value="crr">CRR</option>
<option value="xxd tutou"/>
</datalist>
优雅降级时,可以用select替代option来写。
output元素
除了通用属性和事件处理之外,还可以有form,name,for属性,以及onchange,onforminput和onformchange事件。
没有value属性。
使用情况:用户永远不会直接操作它的值,它的可以通过其他值导出。
<output name="score">0</output>
<output name="level">1</output>
<output name="time">120</output>
meter元素-采用浮点数作为值,通常被用作在一个已知范围内提供一个测量结果的测量仪。
代码:
<p>Grade:<meter value="61" min="0" max="100" low="73" high="87">D-</meter>
<p>Grade:<meter value="74" min="0" max="100" low="73" high="87">D-</meter>
<p>Grade:<meter value="89" min="0" max="100" low="73" high="87">D-</meter>
progress元素-用于标识一个目标或者任务的进度
认可value和max属性,正的浮点数。
form元素-novallidate属性新增,使得表单提交时不进行原生认证。
fieldset元素-第一个可选子元素是legend,用于给fieldset提供组名。
**select元素-**指定一个选择菜单
textarea元素-自由形态文本框,wrap属性中soft文本无换行提交,hard显式换行,需设置cols。
button
label