我正在尝试在代码中创建一个表单对象,并使用我页面上输入元素的数据填充它。我知道我可以用ajax提交现有表格,但我不想这样做。我只是希望这个提交从表单中的4个字段中提取信息并仅提交那些。
// Create Upload Object & Get Data
var form = document.createElement('form');
var uploadData = new FormData(form);
uploadData.append('file[]', $("#pageUpload").files);
uploadData.append('pageItem', $("#pageItem").val());
uploadData.append('pageItem2', $("#pageItem2").val());
uploadData.append('pageItem3', $("#pageItem3").val());
我假设问题与我上面创建上传数据的方式有关,但我还在下面提供了我的ajax提交代码。
// Create A New Ajax Request
$.ajax({
url: './index.php?path=upload',
data: uploadData,
type: 'POST',
contentType: false,
processData: false,
success: function(result){
console.log(result);
processUploads(result.);
}
});
循环遍历表单数据对象,我可以看到它确实包含我定义的键/值,但结果始终是"没有上传。"提前感谢您对我的代码的任何帮助。
答案 0 :(得分:0)
好吧,我终于弄清楚了。显然你不能添加整个$ element.files数组,而是需要遍历数组并分别附加每个文件。所以代码是
for(var fileIndex in $("#pageUpload")[0].files){
uploadData.append('file[]', $("#pageUpload")[0].files[fileIndex]);
}
答案 1 :(得分:0)
据我了解,您希望通过ajax请求将数据发送到服务器。请检查以下代码。
$.ajax({
type: "POST",
url: 'path/to/file',
data: $('#formName').serialize(),
success: function (data) {
console.log(data);
},
error: function () {
console.log("Failed");
}
});