• FormData对象


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

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

    var data = new FormData();
    data.append('uploadpic', $('#licensefile')[0].files[0]);//可以是文件
    data.append('type',"license");

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

    var form = document.getElementById("form");
    var data= new FormData(form);

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

    var form =  document.getElementById("form");
    var data= form.getFormData()

    formdata是一个不透明的对象,现在暂时只有一个append可以操作,不能通过序列化手段得到其里面的内容。

    最终可以将 data = new FormData()获取到的数据丢到ajax的data里面,作为数据传给后台;以下是我用FormData对象上传图片的例子:

    html  file域:

    <input type="file" id="licensefile" multiple="multiple">

    jquery ajax结合FormData异步上传图片:

    $("#licensefile").change(function(){
            popLayer.loading();
            var data = new FormData();
            data.append('uploadpic', $('#licensefile')[0].files[0]);
            data.append('type',"license");
            $.ajax({
                type: "post",
                url: "fileupload/uploadify!userUploadPhoto.action",
                processData: false,
                contentType: false,
                data: data,
                success: function(data){
                    var _data = data
                    if (data.errorCode=="000000") {
                        vm.licenseUrl = data.halfImgUrl;
                        storage.set("licenseUrl",data.halfImgUrl);
                        popLayer.destroy();
                    };
                }
            });
        });

    关于FormData更多的属性和查阅:https://developer.mozilla.org/zh-CN/docs/Web/API/FormData

    参考其他人经验以及部分个人总结,如有侵权,请及时联系本人,QQ:435641688,谢谢

  • 相关阅读:
    Python-环境配置
    Linux操作系统基
    BZOJ 1572 贪心(priority_queue)
    POJ 3040 贪心
    POJ 3039 搜索??? (逼近)
    POJ 2433 枚举
    BZOJ 1571 DP
    BZOJ 1232 Kruskal
    BZOJ 1231 状压DP
    POJ 2430 状压DP
  • 原文地址:https://www.cnblogs.com/oygg/p/5845204.html
Copyright © 2020-2023  润新知