Javascript 在sendingmultiple上使用dropzone.js发送formData
dropzone.js文档/wiki没有说明如何发送表单字段 我刚刚读到了,它说了如何用表单字段填充对象。问题是,用整个表单填充对象将无法发送数据,但如果我逐个附加表单字段,它们将被发送 这项工作:Javascript 在sendingmultiple上使用dropzone.js发送formData,javascript,dropzone.js,Javascript,Dropzone.js,dropzone.js文档/wiki没有说明如何发送表单字段 我刚刚读到了,它说了如何用表单字段填充对象。问题是,用整个表单填充对象将无法发送数据,但如果我逐个附加表单字段,它们将被发送 这项工作: formData.append('name', jQuery('#name').val()); 这并不是: var myForm = document.querySelector('form'); formData = new FormData(myForm); 第一个示例将发送#name字段,
formData.append('name', jQuery('#name').val());
这并不是:
var myForm = document.querySelector('form');
formData = new FormData(myForm);
第一个示例将发送#name
字段,但第二个示例不会发送任何内容(仅发送文件)
我怎么能触发它?我想让dropzone将整个表单连同文件一起发送(都在同一个请求中)
请参阅评论
myDropzone.on('sendingmultiple', function(data, xhr, formData) {
// this will get sent
formData.append('name', jQuery('#name').val());
// this won't -- we don't need this rn, we can just use jQuery
// var myForm = document.querySelector('form');
// you are overwriting your formdata here.. remove this
//formData = new FormData(myForm);
// instead, just append the form elements to the existing formData
$("form").find("input").each(function(){
formData.append($(this).attr("name"), $(this).val());
});
});
好的,我现在明白了。。。你的意思是在我的表单中的输入中手动附加接受的文件,而这个输入与dropzone.js无关,对吗?我不知道该怎么做,将文件数据附加到输入。循环ofc,我变慢了。。。谢谢建议使用sending函数而不是sendingmultiple函数,因为用户可能只上载一个文件。
myDropzone.on('sendingmultiple', function(data, xhr, formData) {
// this will get sent
formData.append('name', jQuery('#name').val());
// this won't -- we don't need this rn, we can just use jQuery
// var myForm = document.querySelector('form');
// you are overwriting your formdata here.. remove this
//formData = new FormData(myForm);
// instead, just append the form elements to the existing formData
$("form").find("input").each(function(){
formData.append($(this).attr("name"), $(this).val());
});
});
init: function() {
this.on("sending", function(file, xhr, formData) {
//formData.append('task_name', jQuery('#task_name').val());
$("form").find("input").each(function(){
formData.append($(this).attr("name"), $(this).val());
});
});
}