【发布时间】:2016-05-07 00:27:49
【问题描述】:
dropzone.js 文档/wiki 没有说明如何发送表单字段。
我刚刚阅读了FormData object,它说明了如何使用表单字段填充对象。问题是用整个表单填充对象不会发送数据,但是如果我一一附加表单字段,它们就会被发送...
这行得通:
formData.append('name', jQuery('#name').val());
这不是:
var myForm = document.querySelector('form');
formData = new FormData(myForm);
第一个示例将发送 #name 字段,但第二个不会发送任何内容(仅发送文件)。
我怎样才能触发它?我想让 dropzone 沿着文件发送整个表单(都在同一个请求中)。
init: function() {
var myDropzone = this,
submitButton = document.querySelector("[type=submit]");
submitButton.addEventListener('click', function(e) {
e.preventDefault();
e.stopPropagation();
myDropzone.processQueue();
});
myDropzone.on('sendingmultiple', function(data, xhr, formData) {
// this will get sent
formData.append('name', jQuery('#name').val());
// this won't
var myForm = document.querySelector('form');
formData = new FormData(myForm);
});
myDropzone.on('successmultiple', function(files, response) {
//window.location.replace("/home");
});
myDropzone.on('errormultiple', function(files, response) {
alert(response);
});
}
【问题讨论】:
-
好的,我现在明白了...您的意思是手动将接受的文件附加到我的表单内的输入中,该输入与 dropzone.js 无关,对吧?我不确定如何执行此操作,请将文件数据附加到输入中。