form表单
表单可实现无刷新页面提交,无需页面跳转
target 属性规定在何处打开 action URL。
form提交目标位当前页面iframe则不会刷新页面
通过type=submit提交
使用form表单进行上传文件需要为form添加enctype="multipart/form-data" 属性,除此之外还需要将表单的提交方法改成post,
如下 method="post", input type的类型需要设置为file
form表单点击发送的执行过程
1 整合表单数据
2 设置请求体
3 对数据进行编码处理 见content-type
4 设置请求方式 method
5 设置请求地址 action
6 控件 是指表单内的元素
7 控件输入的内容并不是直接发送的, 而是经过一种编码规则来处理的。
目前基本上只会只使用二种编码规则:application/x-www-form-urlencoded 和 multipart/form-data , 这二个规则的使用场景简单地说就是:后者在上传文件时使用 ,其它情形则使用前者(默认)。
这个规则是在哪里指定的呢? 其实form还有个enctype属性,用它就可以指定编码规则,
application/x-www-form-urlencoded做为默认值,所以,一般情况下我们并不用显式指定。 除非我们要上传文件了,那么此时必须设置enctype="multipart/form-data"
浏览器并不是将所有的表单控件全部发送到服务器的,而是会查找所有的【成功控件】
成功控件就是:每个表单中的控件都应该有一个name属性和”当前值“, 在提交时,它们将以 name=value 的形式做为提交数据的一部分。
对于一些特殊情况,成功控件还有以下规定:
- 控件不能是【禁用】状态,即指定【disabled="disabled"】。即:禁用的控件将不是成功控件。
- 如果一个表单包含了多个提交按键,那么仅当用户点击的那个提交按钮才算是成功控件。
- 对于checkbox控件来说,只有被用户勾选的才算是成功控件。
- 对于radio button来说,只有被用户勾选的才算是成功控件。
- 对于select控件来说,所有被选择的选项都做为成功控件,name由select控件提供。
- 对于file上传文件控件来说,如果它包含了选择的文件,那么它将是一个成功控件。
此外,浏览器不会考虑Reset按钮以及OBJECT元素。
浙公网安备 33010602011771号