【问题标题】:FormData object is empty when logged or alerted记录或警告时 FormData 对象为空
【发布时间】:2016-09-21 05:34:24
【问题描述】:

我正在使用 AngularJS 和 angular-summernote 作为编辑器。 我的 HTML:

{{msg}}

<form id="sampleForm" ng-submit="sendFormData()" enctype="multipart/form-data">
    <label>Text:</label>
    <summernote height="300" ng-model="summerNoteText" on-image-upload="imageUpload(files)"></summernote><br><br>


    <label>Text box:</label>
    <input type="text" name="normaltext">
    <input type="hidden" name="summernotetext" value="{{summerNoteText}}">


    <button type="submit">
        Submit
    </button>

</form>

我的这个页面的控制器:

'use strict';

angular.module('postTestbench')

    .controller('MainFormController', ['$scope', function($scope) {
        $scope.msg = "submit nigga";

        $scope.imageUpload = function (files) {
            var data = new FormData($('form')[0]);
            data.append('file', files[0]);

            console.log(data);
        };
    }]);

你能告诉我这里有什么问题吗?我搜索了 jquery 和 developer mozilla 的文档,他们建议使用相同的代码。

我只想从summernote上传一张图片,想从服务器获取图片的url, 但 FormData 对象数据显示为空。

更新

我将控制器分配给此页面的配置文件:

'use strict';

angular.module('postTestbench', ['ngRoute', 'summernote'])

    .config(function($routeProvider) {
        $routeProvider

        .when('/', {
            templateUrl: 'pages/sampleForm.html',
            controller: 'MainFormController'
        })

        .otherwise({
            redirectTo: '/'
        })
    })

;

【问题讨论】:

  • 你在哪里引导你的应用程序?您在哪里将此控制器分配给模板?
  • 试着给你的表单一个“名字”,而不仅仅是一个“id”。
  • 我已经更新了问题.......并提供了我分配控制器@TJ的js文件代码

标签: jquery angularjs summernote


【解决方案1】:

也许你的data 不为空,只需通过formData.entries 正确检查即可。

FormData Docs:

FormData.entries() 方法返回一个迭代器,允许遍历此对象中包含的所有键/值对。每对的key是一个USVString对象;值是 USVString 或 Blob。

查看表单数据的方法如下:

var data = new FormData($('form')[0]);
data.append('file', files[0]);

for (var [key, value] of data.entries()) {
    console.log(key, value);
}

【讨论】:

  • 也许*。因为少于 6 个字符的编辑建议是不允许的。 :D
  • 是的,我试过了……它只显示:n e……什么都没有……请帮忙……@YinGang
  • 我已经尝试了确切的代码。但是输出是: n e 表示一个 key=n 和一个 value=e 我从来没有附加这个键值对
  • 你还有其他&lt;form&gt;吗?它在live demo 上真的有效。或者将此演示更新为您的代码?
  • 如果你只是上传图片,试试new FormData()而不是new FormData($('form')[0]);
猜你喜欢
  • 2015-06-04
  • 2017-10-23
  • 2013-07-05
  • 1970-01-01
  • 2015-02-20
  • 1970-01-01
  • 2021-06-28
  • 2015-09-04
  • 2016-07-23
相关资源
最近更新 更多