[英]Why is my input type=file not loading file information?
试着理解这个问题。 我有一个<input type='file'>
元素,用于上传文件,作为旧版浏览器用户拖放选项的替代选项。
拖放上传工作正常,但由于某些原因使用输入选择文件时, files
对象返回undefined
。
在下面的示例中,我已经包含了一个测试变量来检查事件监听器是否正常工作 - 它是什么 - 但是尝试记录文件的内容是不行的 - 我是否尝试记录完整对象或单个属性。
这是代码:
HTML:
<input type="file" id='uploadFile'>
Javascript(jQuery)
doc.on('change', '#uploadFile', function(){
var file = $(this);
var test = 'Event Triggered';
console.log(test); //Returns 'Event Triggered'
console.log(file.files); //Returns undefined
console.log(file.files[0]); //Returns TypeError: cannot read property '0' of undefined
});
我哪里错了? 不禁觉得这是一个愚蠢的监督,但任何帮助将不胜感激。
谢谢!
files
属性位于DOMElement上,而不是jQuery对象。 尝试这个:
$(document).on('change', '#uploadFile', function() {
var file = $(this)[0]; // note the [0] to return the DOMElement from the jQuery object
var test = 'Event Triggered';
console.log(test);
console.log(file.files);
console.log(file.files[0]);
});
这是我的解决方案:
$('#uploadFile').change(function()
{
console.log(this.files);
console.log(this.files[0]);
});
doc.on('change', '#uploadFile', function(e){
var file = $(this);
var test = 'Event Triggered';
console.log(e.target.files)
});
使用event.target.files
试试这个console.log($('#uploadFile')[0].files[0]);
在这里输入链接描述希望这有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.