javascript - 为什么我的input type=file 没有加载文件信息?

标签 javascript jquery html

我正在努力解决这个问题。我有一个 <input type='file'>用于上传文件的元素,作为使用旧版浏览器的用户的拖放选项的替代方案。

拖放上传工作正常,但出于某种原因,在使用输入选择文件时,files对象返回 undefined .

在下面的示例中,我包含了一个测试变量来检查事件监听器是否正在工作 - 它是 - 但尝试记录文件内容的尝试不起作用 - 无论我尝试记录完整的对象还是个人属性(property)。

代码如下:

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]);
});

Working example

关于javascript - 为什么我的input type=file 没有加载文件信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38371108/

相关文章:

javascript - 如何在 JS 文件中隐藏严肃的业务逻辑

javascript - Internet Explorer 11 后退按钮 Javascript 行为

python - 使用 Python 捕获 HTML 表格的图像

c# - 在 Razor 网页上显示静态 .png 图像

javascript - 使用 jQuery each 和 javascript 正则表达式匹配 HTML block 中的最低价和最高价

Php从mysql数据库中删除项目

javascript - 如何不通过引用分配

javascript - CamanJS - 移动 - 空白 Canvas

jquery - 点击展开一个div

jquery - 克隆形式和增量