文章の目录
- 一、构造函数
- 1、FormData()
- 1.1、概述
- 1.2、语法
- 1.3、参数
- 1.4、示例
- 二、实例方法
- 1、append()
- 1.1、概述
- 1.2、语法
- 1.3、参数
- 1.4、返回值
- 2、delete()
- 2.1、概述
- 2.2、语法
- 2.3、参数
- 2.4、返回值
- 3、entries()
- 3.1、概述
- 3.2、语法
- 3.3、返回值
- 4、get()
- 4.1、概述
- 4.2、语法
- 4.3、参数
- 4.4、返回值
- 5、getAll()
- 5.1、概述
- 5.2、语法
- 5.3、参数
- 5.4、返回值
- 6、has()
- 6.1、概述
- 6.2、语法
- 6.3、参数
- 6.4、返回值
- 7、keys()
- 7.1、概述
- 7.2、语法
- 7.3、返回值
- 8、set()
- 8.1、概述
- 8.2、语法
- 8.3、参数
- 9、values()
- 9.1、概述
- 9.2、语法
- 9.3、返回值
- 三、set和append的区别
- 写在最后
一、构造函数
1、FormData()
1.1、概述
FormData() 构造函数用于创建一个新的 FormData 对象。
1.2、语法
var formData = new FormData(form);
1.3、参数
- form【可选】
一个 HTML 上的<form>
表单元素——当指定了,这种方式创建的 FormData 对象会自动将 form 中的表单值也包含进去,包括文件内容也会被编码之后包含进去。
1.4、示例
①、准备 HTML 表单
<form id="form">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="button" />
</form>
②、将 HTML 表单转化为 FormData 对象
var form = document.getElementById("form");
var formData = new FormData(form);
转化成的表单数据为
{"username":"zhangsan","password":"123456"}
二、实例方法
1、append()
1.1、概述
FormData 接口的 append() 方法会添加一个新值到 FormData 对象内的一个已存在的键中,如果键不存在则会添加该键。
1.2、语法
这个方法有两个版本:一个有两个参数的版本和一个有三个参数的版本。
formData.append(name, value);
formData.append(name, value, filename);
1.3、参数
- name
value 中包含的数据对应的表单名称。 - value
表单的值。可以是 String 或 Blob (包括子类型,如 File)。 - filename 【可选】
传给服务器的文件名称 (一个 String),当一个 Blob 或 File 被作为第二个参数的时候, Blob 对象的默认文件名是 “blob”。 File 对象的默认文件名是该文件的名称。
1.4、返回值
空
2、delete()
2.1、概述
FormData 接口的 delete() 方法会从 FormData 对象中删除指定键,即 key,和它对应的值,即 value。
2.2、语法
formData.delete(name);
2.3、参数
- name
要删除的键(Key)的名字。
2.4、返回值
空
3、entries()
3.1、概述
entries() 方法返回一个 iterator 对象,此对象可以遍历访问 FormData 中的键值对。其中键值对的 key 是一个 String 对象;value 是一个 String,或者 Blob对象。
3.2、语法
formData.entries();
3.3、返回值
返回 iterator。
4、get()
4.1、概述
get() 方法用于返回 FormData 对象中和指定的键关联的第一个值,如果你想要返回和指定键关联的全部值,那么可以使用 getAll() 方法。
4.2、语法
formData.get(name);
4.3、参数
- name
将要获取值的键名。
4.4、返回值
String,或者 Blob对象
5、getAll()
5.1、概述
getAll() 方法会返回该 FormData 对象指定 key 的所有值。
5.2、语法
formData.getAll(name);
5.3、参数
- name
将要获取值的键名。
5.4、返回值
String数组,或者 Blob对象数组
6、has()
6.1、概述
**has()**方法会返回一个布尔值,表示该FormData对象是否含有某个 key。
6.2、语法
formData.has(name);
6.3、参数
- name
将要查询值的键名。
6.4、返回值
true或者false boolean值
7、keys()
7.1、概述
keys() 该方法返回一个迭代器(iterator),遍历了该 formData 包含的所有 key,这些 key 是 String 对象。
7.2、语法
formData.keys();
7.3、返回值
返回一个迭代器( iterator)。
8、set()
8.1、概述
set() 方法会对 FormData 对象里的某个 key 设置一个新的值,如果该 key 不存在,则添加。
8.2、语法
该方法有两种使用方式,一个是传入两个参数,一个是传入三个参数。
formData.set(name, value);
formData.set(name, value, filename);
8.3、参数
- name
字段名称。 - value
字段的值,该值可以是一个 String 或 Blob(包括其子类,例如 File),如果不是这两个指定的类型,其将被转成一个字符串。 - filename 【可选】
当第二个参数传递的是一个 blob 对象(Blob)或者 file 对象(File),filename 参数就代表传给服务端的文件名(一个 String)。 Blob 对象的默认文件名是 “blob”,File 对象的默认文件名则为其“name”属性
9、values()
9.1、概述
values() 方法返回一个允许遍历该对象中所有值的 迭代器 。这些值是 String 或是Blob 对象。
9.2、语法
formData.values();
9.3、返回值
返回一个迭代器。
三、set和append的区别
如果某个 key 已经存在,set() 会直接覆盖所有该 key 对应的值,而 append() 则是在该 key 的最后位置再追加一个值。