如何将数组值添加到新FormData?
在表单提交上我使用jQuery来收集包含文件的数据并使用以下方法创建表单值的FormData对象:
var formData = new FormData($("form#formid")[0]);
但是如何添加其他值并且它是此FormData对象的关键?
var formData = new FormData($("form#formid")[0]); formData.append("key", "value")
请参阅https://developer.mozilla.org/en/XMLHttpRequest/FormData
您可以迭代表单中的所有字段,并以这种方式非常容易地将它们添加到FormData
:
var formData = new FormData(); $("form#edit-account").serializeArray().forEach(function(field) { formData.append(field.name, field.value) });
$( 'form' ).submit(function ( e ) { var data; data = new FormData(); data.append( 'file', $( '#file' )[0].files[0] ); $.ajax({ url: 'http://hacheck.tel.fer.hr/xml.pl', data: data, processData: false, type: 'POST', success: function ( data ) { alert( data ); } }); e.preventDefault();
});
var data = new FormData(), fields = $("#myForm").serializeArray(); $.each( fields, function( i, field ) { data.append(field.name, field.value); });
您还可以使用FormData.set() 。
FormData.set和append()之间的区别在于,如果指定的键已经存在,FormData.set将用新的值覆盖所有现有值,而append()会将新值附加到现有值集的末尾。
语法 :
formData.set(name, value);
- 移动webkit浏览器在JS中有舍入问题吗?
- jquery ajax调用时间太长或者什么的
- 播放声音Javascript / Jquery
- 构建JavaScript对象以与jQuery .css()一起使用(重复键怎么办?)
- 使用django-froala-editor,在admin页面中的编辑器工作在post页面中不起作用?未捕获的TypeError:$(…)。froalaEditor不是函数
- 上次文件进度达到100%与停止/完成事件之间的差距很大?
- 如何处理所有AJAX调用的特定HTTP错误?
- 如何在图像映射之上创建html工具提示?
- jQueryUI自动填充 – 如何将搜索词与关键字列表匹配并显示匹配的结果?