Jquery input.files等价
我有一个简单的html表单,只有一个文件上传输入。 ( jsfiddle)
在过去,我已经使用input.files
访问了用户选择的文件,但是我不知道如何使用JQuery执行此操作;
码:
$(function () { $("#cmdSubmit").bind("click", function () { var file = document.getElementById("fileInput").files[0]; alert(file); //A file = $("#fileInput").val(); alert(file); //B file = $("#fileInput").files[0]; alert(file); //C }); });
选项A给出了我期望的文件对象。 但是,选项B只是给我上传文件的名称,并且(据我所知)不是文件本身。
选项C显示files
未定义。
什么是input.files
等效的input.files
?
注意:我不反对使用原生javascript; 但鉴于我在整个项目的其余部分使用JQuery,我更愿意在这里使用它,如果可能的话。
您必须访问该元素。 尝试:
file = $("#fileInput")[0].files[0]; alert(file); //C
或者(谢谢杰克)
file = $("#fileInput").prop('files')[0]; alert(file);
小提琴
jQuery没有为Files API提供包装器。 所以没有jQuery风格的方法来做到这一点,至少没有内置到jQuery核心。
你的选择:
- 坚持选择A.
- 等待jQuery包含这样的包装器(它们可能不会)
- 找到其他人写的扩展名(如果存在)
- 自己写一个扩展
请尝试以下代码
var file = $("#fileInput").get(0).files[0]; alert(file);
谢谢
$(function () { $("#cmdSubmit").bind("click", function () { alert(this.files); }); });