FormData 介绍和使用

news2024/10/5 16:27:29

FormData 是 JavaScript 中用于处理表单数据的接口。它提供了一种简单的方式来构建和发送表单数据,表单数据以键值对的形式向服务器发送,这个过程是浏览器自动完成的。但是有时候,我们希望通过脚本完成这个过程,构造或编辑表单的键值对,然后通过脚本发送给服务器。浏览器原生提供了 FormData 对象来完成这项工作。

一、创建一个FormData对象

var fd = new FormData()

2.使用 append() 方法添加表单字段和值

var fd = new FormData()

fd.append("name", "张三丰")

fd.append("age", 180)

3.表单包含文件上传


var file = document.getElementById('file')

var file = file.files[0]

fd.append('file', file)

二、FormData 方法有哪些

      通过浏览器控制台打印,我们可以看到FormData有以下方法

​​​​​控制台打印


1.使用 append() 方法添加字段和值
  
  var fd = new FormData()
  
  fd.append("name", "张三丰")

  fd.append("age", 180)


2.使用 set() 方法设置字段的值,如果字段已存在,则替换现有的值

  var fd = new FormData()

  fd.set("address", "湖北省武当山")


3.使用 get() 方法获取指定字段的第一个值

  var fd = new FormData()

  fd.get("name") // 张三丰


4.使用 getAll() 方法获取指定字段的所有值,返回一个数组
  
  var fd = new FormData()

  fd.getAll("name")  // ['张三丰']


5.使用 delete() 方法删除指定的字段

  var fd = new FormData()

  fd.delete("address")


6.使用 has() 方法检查指定字段是否存在

  var fd = new FormData()

  fd.has("name")  // true
  

7.使用 entries() 方法遍历 FormData 对象的键值对
  
  var fd = new FormData()

  for (var entry of fd.entries()) {
      var name = entry[0]
      var value = entry[1]

      console.log(name + ': ' + value)
      // 输出 name: '张三丰', age: 180, address: '湖北省武当山'
  }

方法名

描述
append()向 FormData 对象添加一个字段和对应的值。
delete()从 FormData 对象中删除指定的字段。
get()获取指定字段的第一个值。
getAll()获取指定字段的所有值,返回一个数组。
has()检查 FormData 对象中是否存在指定字段。
set()设置指定字段的值,如果字段已存在,则替换现有的值。
entries()返回一个迭代器对象,用于遍历 FormData 对象的键值对。
forEach()遍历 FormData 对象的每个键值对,并执行指定的回调函数。
keys()返回一个迭代器对象,用于遍历 FormData 对象的键。
values()返回一个迭代器对象,用于遍历 FormData 对象的值。
Symbol.iterator返回一个迭代器对象,用于遍历 FormData 对象的键值对。

 三、FormData 的作用

主要用途描述
表单数据的构建动态地构建表单数据,通过使用 append() 方法将字段名称和对应的值添加到 FormData 对象中。
文件上传处理文件上传,将文件对象作为值传递给 append() 方法,将文件字段添加到 FormData 对象中。
AJAX 请求发送与 XMLHttpRequest 或 fetch API 结合使用,发送包含 FormData 对象的 AJAX 请求,以将表单数据发送给服务器。
多部分表单数据处理包含多个部分的表单数据,例如文件字段和文本字段的组合。FormData 提供一种统一的方式来处理和发送这些多部分的表单数据。
动态字段处理根据需要动态添加或删除表单字段,适用于动态表单或根据用户交互添加字段的场景。

FormData 使得处理和发送表单数据变得方便和灵活,特别是在处理文件上传和复杂表单时。通过 FormData,你可以动态地构建表单数据并将其发送到服务器,同时能够处理包含不同类型字段值的多部分表单数据。使用它与 AJAX 请求结合使用,能够更轻松地发送表单数据到服务器进行处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/666380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生态工具箱 | 虚拟机测试工具WasmFuzzer,智能合约安全防火墙

长安链生态工具箱 丰富实用的区块链生态工具不仅可以让开发者部署、开发过程更加得心应手,还可以从能力上扩展区块链应用边界。长安链正在构建强大的生态工具箱以增强在其在各类场景下的应用能力,如智能合约漏洞检测、抗量子多方安全计算、链迁移、密…

CaffeineCache+Redis 接入系统做二层缓存思路实现(借鉴 mybatis 二级缓存、自动装配源码)

本文目录 前言本文术语本文项目地址设计思路开发思路DoubleCacheAble 双缓存注解(如何设计?)动态条件表达式?例如:#a.id?(如何解析?)缓存切面(如何设计?&…

Linux centos7下漏洞扫描工具 Nessus8.15.9的下载、安装

一、下载Nessus 传送带地址:Download Nessus | Tenable 因为Darren洋的Linux操作系统是Linux Centos7 64 位,大家可以根据自己的选择合适的系统版本,在linux系统中用以下命令即可完成查询系统版本。 cat /etc/redhat-release 二、安装Ness…

Axure8 基本操作记录

参考:黑马产品经理课程 视频资源:day1&day2,Axure部分 文章小结图片 Axure8常用功能 选择/缩放 选择 包含选中:全部选中才有效(避免误操作,建议使用这个)相交选中:相交即全选中…

同时安装vue-cli2和vue-cli3

同时安装vue-cli2和vue-cli3 发布时间环境安装后的效果安装vue-cli2安装vue-cli3vue-cli3和vue-cli2的区别vue-cli2目录结构vue-cli3目录结构 发布时间 vue版本发布时间Seed.js2013年vue最早版本最初命名为Seedvue-js 0.62013年12月更名为vuevue-js 0.82014年1月对外发布vue-j…

vue2 用watch监听props 失效,解决办法

这个是父组件传递下来的props 这样子好像TCshow的值并没有赋上 必须修改成下面这种:

[golang 微服务] 7. go-micro框架介绍,go-micro脚手架,go-micro结合consul搭建微服务案例

一.go-micro框架 前言 上一节讲解了 GRPC微服务集群 Consul集群 grpc-consul-resolver相关的案例,知道了微服务之间通信采用的 通信协议,如何实现 服务的注册和发现,搭建 服务管理集群,以及服务与服务之间的 RPC通信方式,具体的内容包括: pro…

SpringBoot 如何使用 IOC 容器

SpringBoot 如何使用 IOC 容器 Spring 是一个非常流行的 Java 开发框架,它提供了一个强大的 IoC(Inversion of Control)容器来管理 Java 对象之间的依赖关系。在 SpringBoot 中,我们可以非常方便地使用这个 IoC 容器来管理我们的…

骨传导耳机音质怎么样,几款解析力度不错的骨传导耳机分享

​骨传导耳机在之前的时候一直是“冷门”的,但是随着技术的进步,现在骨传导耳机也逐渐被大家所熟知。对于喜欢运动和健身的人来说,骨传导耳机可以避免佩戴普通耳机导致耳朵疼痛的情况。因此,目前在市面上很多骨传导耳机都很受欢迎…

Git教程(快速上手,超详细)

文章目录 版本控制Git环境配置Git基本理论Git项目搭建Git文件操作使用码云IDEA集成GitGit分支 版本控制 版本迭代:每次更新就会有新的版本,旧的版本需要保留。所以我们需要一个版本控制工具帮助我们处理这个问题 版本控制(Revision control)是…

入门学习编码器与自编码器1----包括详细的理论讲解与详细的python程序代码,小白直接看懂!!!纯干货

文章目录 前言--为什么要学习编码器和自编码器?一、编码器与自编码器究竟是什么?二、下面是一个简单的Python实现自编码器的示例三、程序运行结果四、查看模型结构总结 前言–为什么要学习编码器和自编码器? 学习编码器和自编码器可以帮助我…

【数据分享】1929-2022年全球站点的逐月平均风速数据(Shp\Excel\12000个站点)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 对于具体到监测站点的气象数据,之前我们分享过1929-2022年全球气象…

「你将购买的是虚拟内容服务,购买后不支持退订」,真的合理么?

编辑导语:你是否也有见过相似提示,即虚拟内容服务购买之后不予退款?那么你有想过,在这一规定背后,其制约因素都有什么吗?这一规定是合理的吗?用户若真的有退款需求,产品上是否能实现…

卷积计算加速方法--分块卷积1

文章目录 1、大尺寸卷积存在的问题2、分块卷积overlap产生的来源3、分块卷积overlap的计算4、结论及加速效果 1、大尺寸卷积存在的问题 当卷积的输入太大导致内存不够用时,考虑将一大块卷积分成多个小块分别进行卷积,相当于将原始输入分成几个小的输入经…

【C++】C++11:线程库和包装器

C11最后一篇文章 文章目录 前言一、线程库二、包装器和绑定总结 前言 上一篇文章中我们详细讲解了lambda表达式的使用,我们今天所用的线程相关的知识会大量的用到lambda表达式,所以对lambda表达式还模糊不清的可以先将上一篇文章看明白。 一、线程库 在…

域名解析详解

域名解析 记录类型: 提示: 将域名指向云服务器,选择 A; 将域名指向另一个域名,选择 CNAME; 建立邮箱选择 MX,根据邮箱服务商提供的 MX 记录填写。 记录类型解释A用来指定域名的 IPv4 地址&…

燃气管网监测设备:燃气管网压力在线监测

燃气作为一种重要的能源,广泛用于家庭、工业和商业领域。然而,燃气管网系统在运输和分配过程中可能面临压力波动、管道老化、外部破坏等问题,可能导致燃气泄漏和事故发生。燃气管网压力在线监测是保障燃气管网安全运营的重要手段之一。通过燃…

Linux系统之部署Homepage个人导航页

Linux系统之部署Homepage个人导航页 一、Homepage介绍1.1 Homepage简介1.2 Homepage主要特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本3.3 检查系统是否安装Node.js 四、部署Node.js 环境4.1 下载Node…

感谢ChatGPT,救了我狗的命!

前一段时间,国外一位小哥哥在推特上发布了一条消息,声称GPT-4拯救了自家狗狗的性命。 这是怎么一回事呢? 这个小哥哥养了一只两岁的边境牧羊犬,这只牧羊犬被诊断出患有蜱传疾病,这属于一种细菌性传染病。 虽然小哥哥一…

30分钟吃掉DQN算法

表格型方法存储的状态数量有限,当面对围棋或机器人控制这类有数不清的状态的环境时,表格型方法在存储和查找效率上都受局限,DQN的提出解决了这一局限,使用神经网络来近似替代Q表格。 本质上DQN还是一个Q-learning算法,…