首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Jquery input.files等价物

Jquery input.files等价物
EN

Stack Overflow用户
提问于 2012-12-07 00:19:12
回答 4查看 51.1K关注 0票数 24

我有一个简单的html表单与单一的文件上传输入。(jsfiddle)

过去,我使用input.files访问用户选择的文件,但是我不知道如何使用JQuery访问;

代码:

代码语言:javascript
复制
$(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

    });        
});​

Option 一个提供了我所期望的文件对象。但是,选项B只是给了我上传的文件的名称,而不是(据我所知)文件本身。

选项C显示files未定义。

input.files的Jquery等价物是什么?

注意:我不反对使用原生javascript;但是考虑到我在这个项目的其余部分都在使用JQuery,如果可能的话,我更喜欢在这里使用它。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-07 00:20:35

您必须访问该元素。尝试:

代码语言:javascript
复制
file = $("#fileInput")[0].files[0];
alert(file); //C

或者(谢谢你,杰克)

代码语言:javascript
复制
file = $("#fileInput").prop('files')[0];
alert(file);

Fiddle

票数 57
EN

Stack Overflow用户

发布于 2012-12-07 00:23:32

尝试下面的代码

代码语言:javascript
复制
var file = $("#fileInput").get(0).files[0];
 alert(file);

谢谢

票数 4
EN

Stack Overflow用户

发布于 2012-12-07 00:21:45

jQuery没有为Files API提供包装器。因此,没有一种jQuery风格的方法可以做到这一点,至少没有内置到jQuery核心中。

您的选择:

  • 坚持选项A
  • 等待jQuery包含这样的包装器(他们可能不会)
  • 查找其他人编写的扩展(如果存在)
  • 自己编写扩展

<代码>F29

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13747892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档