FormData的用途

FormData主要有两个用途:

1.将form表单元素的name与value进行组合,实现表单数据的序列化,从而减少表单元素的拼接,提高工作效率。

2.异步上传文件

一,创建formData对象

1,创建一个空对象

//通过FormData构造函数创建一个空对象

var formdata=new FormData()

//可以通过append()方法来追加数据

formdata.append('name','laotie')

//通过get方法对值进行读取

console.log(formdata.get('name'));//laotie

//通过set方法对值进行设置

formdata.set('name','laoliu');

console.log(formdata.get('name'));//laoliu

2,通过表单对formData进行初始化

创建表单:

<form id="advForm">

  <p> 广告名称:<input type="text" name="advName" value="xixi">  </p>

  <p>广告类别:<select name="advType">

    <option value="1">轮播图</option>

    <option value="2">轮播图底部广告</option>

    <option value="3">热门回收广告</option>

    <option value="4">优品精选广告</option>  

  </select></p>

  <p> <input type="button" id="btn" value="添加"> </p>

</form>

通过表单元素作为参数,实现对formData的初始化:

//获得表单按钮元素

var btn=document.querySelector("#btn")

//为按钮添加点击事件

btn.οnclick=function(){

  //根据ID获得页面当中的form表单元素

  var form=document.querySelector("#advForm");

  //将获得的表单元素作为参数,对formData进行初始化

  var formdata=new FormData(form)

  //通过get方法获得name为advName元素的value值

  console.log(formdata.get("advName"))//xixi

  //通过get方法获得name为advType元素的value值

  console.log(formdata.get("advType"))//1

}

二,操作方法

1,通过get(key)与getAll(key)来获取对应的值

//获取key为age的第一个值

formdata.get("age")

//获取key为age的所有值,返回值为数组类型

formdata.getAll("age")

2,通过append(key,value)在数据末尾追加数据

//通过FormData构造函数创建一个空对象

var formdata=new FormData()

//通过append()方法在末尾追加key为name值为laoliu的数据

formdata.append("name","laoliu")

//通过append()方法在末尾追加key为name值为laoli的数据

formdata.append("name","laoli")

//通过append()方法在末尾追加key为name,值为laotie的数据

formdata.append("name","laotie")

//通过get方法读取key为name的第一个值

console.log(formdata.get("name"));//laoliu

//通过getAll方法读取key为name的所有值

console.log(formdata.getAll("name"))//["laoliu","laoli","laotie"]

3,通过set(key,value)来设置修改数据

key的值不存在,会添加一条数据

//通过Formdata够着函数创建一个空对象

var formdata=new FormData()

//如果key的值不存在会为数据添加一个key为name值为laoliu的数据

formdata.set("name","laoliu")

//通过get方法读取key为name的第一个值

console.log(formdata.get("name"));//laoliu

key的值存在,会修改对应的value值

//通过FomrData构造函数创建一个空对象

var formdata=new FormData()

//通过append()方法在末尾追加key为name值为laoliu的数据

formdata.append("name","laoliu")

//通过append()方法在末尾追加key为name,值为laoliu2的数据

formdata.append("name","laoliu2")

//通过get方法读取key为name的第一个值

console.log(formdata.get("name"))://laoliu

//通过getAll方法读取key为name的所有值

console.log(formdata.getAll("name"));["laoliu","laoliu2"]

//将存在的key为name的值修改为laoli

formdata.set("name","loali")

//通过get方法读取key为name的第一个值

console.log(formdata.get("name"));//laoli

//通过getAll方法读取key为name的所有值

console.log(formdata.getAll("name"));//["laoli"]

4,通过has(key)来判断是否存在对应的key值

//通过FormData构造函数创建一个空对象

var formdata=new FormData()

//通过append()方法在末尾追加key为name值为laoliu的数据

formdata.append("name","laoliu")

//判断是否包括key为name的数据

console.log(formdata.has("name"));//true

//判断是否包含key为age的数据

console.log(formdata.has("age"));//false

5.通过delete(key)可以删除数据

//通过FormData构造函数创建一个空对象

var formdata=new FormData()

//通过append()方法在末尾追加key为name值为laoliu的数据

formdata.append("name","laoliu")

console.log(formdata.get("name"))//laoliu

//删除key为name的值

formdata.delete("name")

console.log(formdata.get("name"))//null

三,通过XMLHttpRequest发送数据

创建表单:

<form id="advForm">

  <p>广告名称:<input type="text" name="advName" value="xixi"></p>

  <p>广告类别:<select name="advType">

    <option value="1">轮播图</option>

    <option value="2">轮播图底部广告</option>

    <option value="3">热门回收广告</option>

    <option value="4">优品精选广告</option>

  </select></p>

  <p>广告图片:<input type="file" name="advPic"></p>

  <p>广告地址:<input type="text" name="advUrl"></p>

  <p>广告排序:<input type="text" name="orderBy"></p>

  <p><input type="button" id="btn" value="添加"></p>

</form>

发送数据:

var btn=document.querySelector("#btn")

btn.οnclick=function(){

  var formdata=new FormData(document.getElementById("advForm"))

  var xhr=new XMLHttpRequest();

  xhr.open("post","http://127.0.0.1/adv")

  xhr.send(formdata)

  xhr.οnlοad=function(){

    if(xhr.status==200){

      //....

    }

  }

}

FormData的用途相关推荐

  1. ajax提交数据中formdata的使用

    什么是formdata FormData是Ajax2.0(XMLHttpRequest Level2)提供的一种将form表单元素name和value组合成键值,实现表单数据的序列化,从而减少from ...

  2. ajax 原生js操作ajax

    一.ajax         1.什么是ajax?         ajax是异步javascript与xml,它是多种技术一个集合.可以无刷新状态更新页面.         2.ajax的优缺点: ...

  3. Promise系列学习

    Promise系列学习 Promise 2.1 什么是Promise 2.1.2 promise的状态改变(promiseState) 2.1.3 promise 对象的值 (promiseResul ...

  4. 简单的ajax上传商品功能使用SevletFileUpload和FormData

    目录 1.先上图 2.使用ServletFileUpload读取前端发送过来的请求 2.1.maven依赖 2.2.SevletFileUpload的一些基本操作 3.前端代码 4. Servlet ...

  5. FormData使用方法详解

    https://www.jianshu.com/p/e984c3619019 FormData的主要用途有两个: 1.将form表单元素的name与value进行组合,实现表单数据的序列化,从而减少表 ...

  6. FormData简介

    ​FormData 简单介绍 FormData是Ajax 2.0对象用以将数据编译成键值对,以便于XMLHttpRequest来发送数据.XMLHttpRequest Level 2提供的一个接口对象 ...

  7. FormData的详解

    FormData的详解 用途 将form表单的name和value进行组合,实现表单序列化,减少拼接. 异步上传文件 创建一个formData对象 创建一个空对象 //通过FormData构造函数创建 ...

  8. PHP Multipart/form-data remote dos Vulnerability

    catalog 1. Description 2. Analysis 1. Description PHP is vulnerable to a remote denial of service, c ...

  9. php ajax formdata 进度,使用formdata使用ajax将数据发送到PHP

    解决方案:我必须放下sumbmit按钮并使用常规按钮.该代码的其余部分起作用.我也放弃了HTML表单. 我试图发送一个图像+一些文本到我的PHP脚本与Ajax使用formdata. 这就是我得到的: ...

最新文章

  1. 对不起,我就是喜欢问你Spring构造器注入原理
  2. python末位1的位置_用Python黑了整个学院学姐的电话和QQ,爬虫牛皮!兄弟们耗子尾之!...
  3. python自学课堂_python怎么自学要那本书
  4. Linux下查看当前文件大小的命令
  5. LESS CSS 框架简介(转)
  6. ERROR ITMS-90022,90023,问题已解决
  7. 北林oj-算法设计与分析-Line up in the canteen(两种解法,附思路)
  8. python plot 时间_python – 在matplotlib中绘制时间与日期
  9. Docker教程:dokcer machine的概念和安装
  10. GAMMA instabus /products/et/ GAMMA智能楼宇控制系统应用手册
  11. tkinter让用户选择文件并返回可读取文件绝对地址
  12. python怎么编辑浏览器_怎样修改anaconda默认浏览器
  13. POI之excel固定模板导出
  14. 极其简单的响应式的模块化布局、看板布局 js 工具
  15. Linux 安装 .7z 解压和压缩文件
  16. 360度全景图像制作
  17. python操作无界面的chrome浏览器(转)
  18. 上传资源到静态服务器
  19. 性能工具之 Locust 简单入门
  20. 南邮 OJ 1446 嘉娃的难题

热门文章

  1. Matlab 2018a中文版下载方法
  2. 【Python】random.randint()用法
  3. js object转json
  4. 什么是ThreadLocal?ThreadLocal基本使用
  5. 央企建筑施工企业职工教育培训数字化解决方案
  6. java五位随机验证码的实现。要求前四位是随机大小写的字母,最后一位是数字的组合。例如qWrY4
  7. 关于van-card中thumb引入本地图片而无法正常显示的解决方法
  8. linux 修改root密码方法
  9. ZigBee协调器向子节点发消息
  10. 关于机器人状态估计(13)-线性代数有多重要?18.06总结