html5基础---疯狂的表单
1. 表单回顾
· Html5 Forms概述,在Html5中:
① 表单仍然使用<form>
元素作为容器,我们可以在其中设置基本的提交特性
form
的action
指向一个服务器地址(接口)
② 当用户或开发人员提交页面时,表单仍然用于向服务端发送表单中控件的值
注意: 表单项的name属性必须有值,服务器才能获取表单。
③ 所有之前的表单控件都保持不变
④ 仍然可以使用脚本操作表单控件
⑤ Html5之前的表单:
标签为<input>
type:text:
文本框
type:password:
密码框
type:radio:
单选按钮
注意以name分组,确保单选关系,也为了后台能成功获取。
必须有value属性,为了后台获取后的识别(不写统一为on)。
checked属性,选中控制。
type:checkbox:
复选框
注意以name分组,确保为一组,也为了后台能成功获取。
必须有value属性,为了后台获取后的识别(不写统一为on)。
checked属性,选中控制。
type:submit:
提交按钮
type:reset:
重置按钮
type:button:
普通按钮
标签为<select>
: 下拉框
name属性在select标签上
multiple:可选多项
子项可以通过<optgroup>
来进行分组
label属性用来定义组名
子项为option标签
selected属性,选中控制
必须有value属性,为了后台获取后的识别
<select>
<optgroup label="Swedish Cars">
<option value ="volvo">Volvo</option>
<option value ="saab">Saab</option>
</optgroup>
<optgroup label="German Cars">
<option value ="mercedes">Mercedes</option>
<option value ="audi">Audi</option>
</optgroup>
</select>
标签为<textarea>
: 文本域
标签为<button>
: 按钮
type:submit:
提交按钮
type:reset:
重置按钮
type:button:
普通按钮
标签为<lable>
: 控制文本与表单的关系
for属性指向一个input的id
标签<fieldset>
标签<legend>
: 来为表单分组
2. 新增表单控件
##### · 常用
type:number:
只能包含数字的输入框
type:color:
颜色选择器
type:datetime:
显示完整日期(移动端浏览器支持)
type:datetime-local:
显示完整日期,不含时区
type:time:
显示时间,不含时区
type:date:
显示日期
type:week:
显示周
type:month:
显示月
· 不常用
type:email:
email地址类型
当格式不符合email格式时,提交是不会成功的,会出现提示;只有当格式相符时,提交才会通过
在移动端获焦的时候会切换到英文键盘
type:tel:
电话类型
在移动端获焦的时候会切换到数字键盘
type:url:
url类型
当格式不符合url格式时,提交是不会成功的,会出现提示;只有当格式相符时,提交才会通过
type:search:
搜索类型
有清空文本的按钮
type:range:
特定范围内的数值选择器
属性:min、max、step
3. 新增表单属性
placeholder:
输入框提示信息
适用于form,以及type为text、search、url、tel、email、password类型的input。
autofocus:
指定表单获取输入焦点
required:
此项必填,不能为空
pattern:
正则验证 pattern="\d{1,5}
formaction:
在submit里定义提交地址
list、datalist:
为输入框构造一个选择列表
list值为<datalist>
标签的id
4. 表单验证反馈
validity对象,通过下面的valid可以查看验证是否通过,如果八种验证都通过返回true,一种验证失败返回false
node.addEventListener("invalid",fn1,false);
/*
valueMissing : 输入值为空时返回true
typeMismatch : 控件值与预期类型不匹配返回true
patternMismatch : 输入值不满足pattern正则返回true
基本用不到:
tooLong : 超过maxLength最大限制返回true
rangeUnderflow : 验证的range最小值返回true
rangeOverflow : 验证的range最大值返回true
stepMismatch : 验证range 的当前值 是否符合min、max及step的规则返回true
customError 不符合自定义验证返回true
*/
node.setCustomValidity('自定义验证返回值') //为空时则为验证通过,否则无法提交表单
/*
关闭验证:
formnovalidate属性
*/