form详解
form
** form常用属性
- action 指定请求的地址
- method 请求方式,如果是post形式发出的,表单的输入值就会放在请求体中,并且会进行编码处理,编码的方式在请求头中的
Content-Type
来说明,这样当服务器收到请求后,就知道如何读取数据。默认是Content-Type: application/x-www-form-urlencoded
. - enctype 这个属性是来设置编码方式,目前常用的是两种编码方式:
application/x-www-form-urlencoded
和multipart/form-data
, 这二个规则的使用场景简单地说就是:后者在上传文件时使用,其它情形则使用前者(默认)。
** form中的成功控件
- 什么是成功控件?
浏览器不会将所有的表单控件全部发送到服务器的,而是会查找所有的成功控件。简单地来说,成功控件就是:每个表单中的控件都应该有一个name属性和”当前值“, 在提交时,它们将以 name=value 的形式做为提交数据的一部分。 - 浏览器如果处理表单提交的成功控件
1、识别所有成功控件
2、为所有的成功控件创建一个数据集合,它们包含 control-name/current-value 这样的值对。
3、按照form.enctype指定的编码规则对前面准备好的数据进行编码。编码规则将放在请求中,用【Content-Type】指出。
4、提交编码后的数据。此时会区分post,get二种情况,提交的地址由form.action属性指定的。
** HTML5form的新属性
- autocomplete 用于指示input元素是否能够拥有一个默认值,这个默认值是由浏览器自动补全。
- novalidate 布尔属性 规定当提交表单时不对表单数据进行验证。
- 除了form元素的新属性外,还惊奇的发现html5添加了一个form属性,使得表单在提交的时候不仅可以提交表单内的控件元素,在外的控件元素值也可以一并提交出去。类似于label标签与input用id来绑定。