JS FormData

FormData

**FormData**接口提供了一种表示表单数据的键值对 key/value 的构造方式,并且可以轻松的将数据通过[XMLHttpRequest.send()](<https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/send>)方法发送出去,本接口和此方法都相当简单直接。如果送出时的编码类型被设为 "multipart/form-data",它会使用和表单一样的格式。

创建formData对象

  • 构造函数用于创建一个新的FormData对象

    // 通过FormData构造函数创建一个空对象
    let formdata = new FormData();
    
  • 通过表单对formData进行初始化

    <form id="advForm">
        <p>广告名称:<input type="text" name="advName"  value="xixi"></p>
        <p>广告类别:<select name="advType">
            <option value="1">轮播图</option>
            <option value="2">轮播图SeriousLose</option>
            <option value="3">SeriousLose1</option>
            <option value="4">SeriousLose2</option>
        </select></p>
        <p><input type="button" id="btn" value="添加"></p>
    </form>
    
    // 获得表单按钮元素
    var btn=document.querySelector("#btn");
    // 为按钮添加点击事件
    btn.onclick=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 
    }
    

方法

  • 取值

    • FormData.get()

      // 获取key为age的第一个值
      formdata.get("age");
      
    • FormData.getAll()

      • 返回一个包含 FormData对象中与给定键关联的所有值的数组。
      // 获取key为age的所有值,返回值为数组类型
      formdata.getAll("age");
      
  • 添加数据

    • FormData.append()

      • 向 FormData 中添加新的属性值,FormData 对应的属性值存在也不会覆盖原值,而是新增一个值,如果属性不存在则新增一项属性值。
      // 通过append()方法在末尾追加key为name值为laoliu的数据
      formdata.append("name","SeriousLose");
      formdata.append("name","SeriousLose1");
      console.log(formdata.get("name"));// SeriousLose
      console.log(formdata.getAll("name"));//["SeriousLose", "SeriousLose1"];
      
  • 修改数据

    • FormData.set()

      • FormData 设置属性值,如果FormData 对应的属性值存在则覆盖原值,否则新增一项属性值。
      // 如果key的值不存在会为数据添加一个key为name值为SeriousLose的数据
      formdata.set("name","SeriousLose");
      
      var formdata = new FormData();
      formdata.append("name","SeriousLose");
      formdata.append("name","SeriousLose1");
      console.log(formdata.get("name"));// SeriousLose
      console.log(formdata.getAll("name"));//["SeriousLose", "SeriousLose1"]
      
      // 将存在的key为name的值修改为SeriousLose
      formdata.set("name","SeriousLose2");
      console.log(formdata.get("name"));// SeriousLose
      console.log(formdata.getAll("name"));// ["SeriousLose"]
      
  • 是否存在key

    • FormData.has()

      • 返回一个布尔值,表明 FormData 对象是否包含某些键
      formdata.has("name"); // true
      
  • 删除key

    • FormData.delete()

      formdata.delete("name");
      

循环

  let formData = new FormData();
  formData.append('1', '2');
  // 存在对象要 转成字符串存储
  formData.append('2', { a: 1 });
  formData.append('3', JSON.stringify({ a: 1 }));

  // 第一种
  for (var value of formData.values()) {
    console.log(value);
  }

  // 第二种
  for (var [a, b] of formData.entries()) {
    console.log(a, b);
  }

FormData - Web API 接口参考 | MDN

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.icon-default.png?t=M276https://serious-lose.notion.site/JS-FormData-c13cf107ebc347568c3a9e74cfca2cd5

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值