zoukankan      html  css  js  c++  java
  • 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);
    

    相关链接:Firefox 4: easier JS form handling with FormData

    https://gist.github.com/3120320

  • 相关阅读:
    阿里云在云栖大会发布SaaS加速器3.0版最新成果,让天下没有难做的SaaS
    阿里云重磅发布全域集成解决方案,帮助提升5倍全域集成效率
    2019亚太内容分发大会,阿里云获CDN领袖奖、技术突破奖
    阿里云应用上边缘云解决方案助力互联网All in Cloud
    云栖大会压轴好戏 阿里云智能视频云专场划重点啦!
    阿里云研究员金戈:视频云新“三网一云”,驱动行业应用创新
    阿里云启动视频云V5计划,全面赋能生态合作伙伴
    数据库实例性能调优利器:Performance Insights
    n转m进制标准写法(必须记忆)
    傻逼暴力法画蛇皮矩阵图
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/2028827.html
Copyright © 2011-2022 走看看