FormData对象

FF4中增加了一个很有意思的对象,FormData。通常我们提交(使用submit button)时,会把form中的所有表格元素的name与value组成一个queryString,提交到后台。这用jQuery的方法来说,就是serialize。但当我们使用Ajax提交时,这过程就要变成人工的了。因此,FormData对象的出现可以减少我们一些工作量。

想得到一个FormData对象,很简单:

var formdata = new FormData();

但一个空的FormData对象对我们没有意义,因此W3c草案提供了三种方案来获取或修改FormData。

方案1:创建一个空的FormData对象,然后再用append方法逐个添加键值对:

var formdata = new FormData();

formdata.append("name", "司徒正美");

formdata.append("blog", "http://www.cnblogs.com/rubylouvre/");

方案2:取得form元素对象,将它作为参数传入FormData对象中!

var formobj = document.getElementById("form");

var formdata = new FormData(formobj);

方案3:利用form元素对象的getFormData方法生成它!

var formobj = document.getElementById("form");

var formdata = formobj.getFormData()

注意,formdata是一个不透明的对象,现在暂时只有一个append可以操作,不能通过序列化手段得到其里面的内容,这实在是遗憾。它的用法现在也只有一个,用于增强型的XMLHttpRequest对象的send方法中去!

var formElement = document.getElementById("myFormElement");

formData = formElement.getFormData();

formData.append("serialnumber", serialNumber++);

xhr.send(formData);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • .Net之使用Jquery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径

      首先对于图片上传而言,在我们的项目开发中可以说出现的频率是相当的高的。这篇文章中,我将要描述的是在我们.Net中如何使用Jquery Ajax通过FormD...

    追逐时光
  • jQuery中on()、bind()、live()、delegate()之间的区别

    首先简述下回涉及到的几个知识点: DOM树 首先,可视化一个HMTL文档的DOM树是很有帮助的。一个简单的HTML页面看起来就像是这个样子:

    Clearlove
  • 推荐 | 解决文库无法复制的问题(续篇)

    前段时间我在公众号发表了一篇推文:「什么?你无法复制百度文库的内容?」,之后我收到了不少小伙伴们的反馈,其中也有一些大神分享了他们的经验和方案,我在...

    悠风
  • jQuery源码研究:模块规范兼容

    从jq官网down下最新的未压缩版代码并打开后,首先看下整体,这就是一个大型的自执行的匿名函数:

    前端_AWhile
  • jquery 基础

    ("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。

    用户5760343
  • 关于DOM事件流、DOM0级事件与DOM2级事件

    DOM 事件模型包括捕获和冒泡,捕获是从上往下到达目标元素,冒泡是从当前元素,也就是目标元素往上到 window

    Leophen
  • 月入35k大佬总结:web前端必须学习的内容(附全套前端教程)

    优秀的WEB前端工程师具备编写任何一个互联网系统的前端页面、交互代码的能力。根据对100家互联网名企对Web开发工程师的招聘要求分析,企业要求主要有两部分,一个...

    用户5827212
  • 跨域Access-Control-Allow-Origin解决方案

    本地启动了一个web服务,地址为 127.0.0.1:8882 ,然后通过一个本地静态页面去请求这个接口。虽然在同一台电脑,但依然是跨域的。

    acupt
  • javascript事件流的原理

    事件是用户或浏览器自身执行的某种动作,如click,load和mouseover都是事件的名字。

    前端老鸟
  • Web前端为什么那么好

    互联网发展到今天,全球已有28.9亿互联网用户,中国有355万网站,6.5亿网民,13亿手机用户,5亿微信用户,当步入互联网+时代后,互联网已经越来越复杂,纷繁...

    用户5827212

扫码关注云+社区

领取腾讯云代金券