码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JavaScript系列之 FormData 的简单使用


    文章の目录

    • 一、构造函数
      • 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

    1.3、参数

    • form【可选】
      一个 HTML 上的
      表单元素——当指定了,这种方式创建的 FormData 对象会自动将 form 中的表单值也包含进去,包括文件内容也会被编码之后包含进去。

    1.4、示例

    ①、准备 HTML 表单

    <form id="form">
    	<input type="text" name="username" />
    	<input type="password" name="password" />
    	<input type="button" />
    form>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ②、将 HTML 表单转化为 FormData 对象

    var form = document.getElementById("form");
    var formData = new FormData(form);
    
    • 1
    • 2

    转化成的表单数据为

    {"username":"zhangsan","password":"123456"}
    
    • 1

    二、实例方法

    1、append()

    1.1、概述

    FormData 接口的 append() 方法会添加一个新值到 FormData 对象内的一个已存在的键中,如果键不存在则会添加该键。

    1.2、语法

    这个方法有两个版本:一个有两个参数的版本和一个有三个参数的版本。

    formData.append(name, value);
    formData.append(name, value, filename);
    
    • 1
    • 2

    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);
    
    • 1

    2.3、参数

    • name
      要删除的键(Key)的名字。

    2.4、返回值

    空

    3、entries()

    3.1、概述

    entries() 方法返回一个 iterator 对象,此对象可以遍历访问 FormData 中的键值对。其中键值对的 key 是一个 String 对象;value 是一个 String,或者 Blob对象。

    3.2、语法

    formData.entries();
    
    • 1

    3.3、返回值

    返回 iterator。

    4、get()

    4.1、概述

    get() 方法用于返回 FormData 对象中和指定的键关联的第一个值,如果你想要返回和指定键关联的全部值,那么可以使用 getAll() 方法。

    4.2、语法

    formData.get(name);
    
    • 1

    4.3、参数

    • name
      将要获取值的键名。

    4.4、返回值

    String,或者 Blob对象

    5、getAll()

    5.1、概述

    getAll() 方法会返回该 FormData 对象指定 key 的所有值。

    5.2、语法

    formData.getAll(name);
    
    • 1

    5.3、参数

    • name
      将要获取值的键名。

    5.4、返回值

    String数组,或者 Blob对象数组

    6、has()

    6.1、概述

    **has()**方法会返回一个布尔值,表示该FormData对象是否含有某个 key。

    6.2、语法

    formData.has(name);
    
    • 1

    6.3、参数

    • name
      将要查询值的键名。

    6.4、返回值

    true或者false boolean值

    7、keys()

    7.1、概述

    keys() 该方法返回一个迭代器(iterator),遍历了该 formData 包含的所有 key,这些 key 是 String 对象。

    7.2、语法

    formData.keys();
    
    • 1

    7.3、返回值

    返回一个迭代器( iterator)。

    8、set()

    8.1、概述

    set() 方法会对 FormData 对象里的某个 key 设置一个新的值,如果该 key 不存在,则添加。

    8.2、语法

    该方法有两种使用方式,一个是传入两个参数,一个是传入三个参数。

    formData.set(name, value);
    formData.set(name, value, filename);
    
    • 1
    • 2

    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();
    
    • 1

    9.3、返回值

    返回一个迭代器。

    三、set和append的区别

    如果某个 key 已经存在,set() 会直接覆盖所有该 key 对应的值,而 append() 则是在该 key 的最后位置再追加一个值。

    写在最后

    如果你感觉文章不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
    如果你觉得该文章有一点点用处,可以给作者点个赞;\\*^o^*//
    如果你想要和作者一起进步,可以微信扫描二维码,关注前端老L;~~~///(^v^)\\\~~~
    谢谢各位读者们啦(^_^)∠※!!!

  • 相关阅读:
    『现学现忘』Docker基础 — 28、Docker容器数据卷介绍
    浙大工商管理硕士(MBA)创客班适合哪些人群申请报考?
    〔支付接入〕微信的 h5 支付和 jsapi 支付
    VMware虚拟机ubuntu网络配置以及ifconfig命令
    【全网最细致】SpringBoot整合Spring Security + JWT实现用户认证
    从零开始写 Docker(十)---实现 mydocker logs 查看容器日志
    多链路聚合路由在消防智能指挥系统中的应用
    【重拾计划】深搜&广搜 | luogu P1135 奇怪的电梯
    2022徐特立科学营&BIT机器人队电控课程讲义
    社区系统项目复盘-5
  • 原文地址:https://blog.csdn.net/weixin_62277266/article/details/127719654
  • 最新文章
  • BMAD Story Automator 上手实录:把 5 个待办 Story 交给 AI 自主推进
    自己用 ai 写了个链接 mysql 数据库的 mcp 工具
    用ANTLR实现表达式词法和语法分析器
    Claude Code安装,接入阿里云百炼模型,蹭蹭免费额度
    JVM缓存对象对GC的影响与优化方案
    基于多模态视觉模型和图文向量模型的工业图像知识库研究与应用
    .NET 8 Web开发入门(四):注入燃料——Entity Framework Core 与 Code First 实战
    当 AI 开始写代码,谁来保证它不会翻车?
    深入剖析Java内存模型与volatile关键字
    使用Cursor实现管理系统的主界面布局的Vue3前端开发
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号