FormData() 构造函数用于创建一个新的 FormData 对象。
var formData = new FormData(form);
表单元素——当指定了,这种方式创建的 FormData 对象会自动将 form 中的表单值也包含进去,包括文件内容也会被编码之后包含进去。①、准备 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"}
FormData 接口的 append() 方法会添加一个新值到 FormData 对象内的一个已存在的键中,如果键不存在则会添加该键。
这个方法有两个版本:一个有两个参数的版本和一个有三个参数的版本。
formData.append(name, value);
formData.append(name, value, filename);
name
value 中包含的数据对应的表单名称。
value
表单的值。可以是 String 或 Blob (包括子类型,如 File)。
filename 【可选】
传给服务器的文件名称 (一个 String),当一个 Blob 或 File 被作为第二个参数的时候, Blob 对象的默认文件名是 “blob”。 File 对象的默认文件名是该文件的名称。
空
FormData 接口的 delete() 方法会从 FormData 对象中删除指定键,即 key,和它对应的值,即 value。
formData.delete(name);
空
entries() 方法返回一个 iterator 对象,此对象可以遍历访问 FormData 中的键值对。其中键值对的 key 是一个 String 对象;value 是一个 String,或者 Blob对象。
formData.entries();
返回 iterator。
get() 方法用于返回 FormData 对象中和指定的键关联的第一个值,如果你想要返回和指定键关联的全部值,那么可以使用 getAll() 方法。
formData.get(name);
String,或者 Blob对象
getAll() 方法会返回该 FormData 对象指定 key 的所有值。
formData.getAll(name);
String数组,或者 Blob对象数组
**has()**方法会返回一个布尔值,表示该FormData对象是否含有某个 key。
formData.has(name);
true或者false boolean值
keys() 该方法返回一个迭代器(iterator),遍历了该 formData 包含的所有 key,这些 key 是 String 对象。
formData.keys();
返回一个迭代器( iterator)。
set() 方法会对 FormData 对象里的某个 key 设置一个新的值,如果该 key 不存在,则添加。
该方法有两种使用方式,一个是传入两个参数,一个是传入三个参数。
formData.set(name, value);
formData.set(name, value, filename);
name
字段名称。
value
字段的值,该值可以是一个 String 或 Blob(包括其子类,例如 File),如果不是这两个指定的类型,其将被转成一个字符串。
filename 【可选】
当第二个参数传递的是一个 blob 对象(Blob)或者 file 对象(File),filename 参数就代表传给服务端的文件名(一个 String)。 Blob 对象的默认文件名是 “blob”,File 对象的默认文件名则为其“name”属性
values() 方法返回一个允许遍历该对象中所有值的 迭代器 。这些值是 String 或是Blob 对象。
formData.values();
返回一个迭代器。
如果某个 key 已经存在,set() 会直接覆盖所有该 key 对应的值,而 append() 则是在该 key 的最后位置再追加一个值。
如果你感觉文章不咋地
//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果你觉得该文章有一点点用处,可以给作者点个赞;\\*^o^*//
如果你想要和作者一起进步,可以微信扫描二维码,关注前端老L;~~~///(^v^)\\\~~~
谢谢各位读者们啦(^_^)∠※!!!