为什么我的输入类型=文件没有加载文件信息
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]);
});
工作示例
doc.on('change', '#uploadFile', function(e){
var file = $(this);
var test = 'Event Triggered';
console.log(e.target.files)
});
使用 event.target.files
这是我
的解决方案:
$('#uploadFile').change(function()
{
console.log(this.files);
console.log(this.files[0]);
});
试试这个console.log($('#uploadFile')[0].files[0]);
在此处输入链接描述 希望这有帮助
相关文章:
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- Ajax文件加载和<输入>文件加载
- 使用Bootstrap将JSON文件加载到表中
- 将组合JSON文件加载到谷歌地图
- 将文本文件加载到javascript中
- jQuery Mobile样式从另一个文件加载内容
- 使用JavaScript将压缩文本文件加载到字符串中
- 数组在手动写入时有效,但从文本文件加载时无效
- 如何在打印前等待javascript文件加载twitter,并在打印后关闭选项卡
- 从文本文件加载jsondata时出现空白页
- AngularJS:如何使用ng-include将javascript文件加载到部分中
- 使用jquery将html文件加载到html中,用于离线/本地项目
- 从另一个grunt文件加载grunt任务
- 将php文件加载到弹出窗口中,并将php变量发布到该弹出窗口中(使用onclick)
- 如何使用node.js将不同的json文件加载到不同的json对象中
- 将变量从服务器上的外部文件加载到 HTML 文档中
- 节点 - 将 JSON 文件加载到代码中
- 如何使用 JavaScript/jQuery 将 XML 文件加载到 JSP/HTML 页面
- NodeJS和ExpressJS-Javascript文件加载,但CSS文件不加载;t
- D3.js:通过Force Layout从JSON文件加载多个网络