我无法获取<input type="file">
。
在下面的代码中,我创建了一个ui对话框并有两个输入。其中一个是文本,另一个是文件输入/上传。
我可以获取文本值,但无法获取文件输入。
var $container = $(document.body);
var j = '<div class="form-group fileupload">'
+ '<label>' + ' Döküman Adı Girin :' + '</label>'
+ '<input type="text" id="mediatitle" placeholder="Döküman Adı" class="form-control"></br>'
+ '<label>' + 'File Yükle' + '</label>'
+ '<input id="FileUpload" type="file"/>'
+ '</div>',
k = '<button href="#" class="btn btn-primary linkUpload" >' +'Yükle' + "</button>";
this.$dialog = ui.dialog({
title: 'Döküman Yükle',
body: j,
footer: k
}).render().appendTo($container);
单击按钮时,我尝试获取输入值:
var formData = new FormData();
var fileName = $("#mediatitle").val();
var totalFiles = $("#FileUpload").files.length;
for (var i = 0; i < totalFiles; i++) {
var file = document.getElementById("FileUpload").files[i];
formData.append("FileUpload", file);
}
totalfiles
返回0.
如何解决此问题?提前谢谢。
答案 0 :(得分:1)
var totalFiles = document.getElementById("FileUpload").files.length;
$("#FileUpload")
不是文件输入。它是一个包含文件输入的jQuery集合。 jQuery集合没有file
个属性。原始DOM节点可以。
稍作清理:
var formData = new FormData();
var fileName = $("#mediatitle").val();
var fileInput = document.getElementById("FileUpload");
var totalFiles = fileInput.files.length;
for (var i = 0; i < totalFiles; i++) {
var file = fileInput.files[i];
formData.append("FileUpload", file);
}