【问题标题】:Is it possible to remove individual values from an file input multiple element?是否可以从文件输入多个元素中删除单个值?
【发布时间】:2011-08-17 21:14:53
【问题描述】:

我正在尝试删除或以某种方式取消多个文件的单个输入中的单个值。假设我们有四个值...

<input id="input" multiple="multiple" type="file" />
input = document.getElementById('input');
// So our four files are:
input.files[0];
input.files[1];
input.files[2];
input.files[3];

如果我想从数组中删除 [1] 而不会破坏其他数组,我可以这样做吗?我尝试过拼接,将值设置为 NULL,更改名称等。这些东西似乎都不起作用(虽然元素保持只读 = false) Jquery 的删除函数删除了整个元素,所以它不起作用。 非常感谢任何帮助!

【问题讨论】:

标签: javascript jquery html


【解决方案1】:

我是readonly

【讨论】:

    【解决方案2】:

    我很好奇为什么 splice 不起作用。通常这样做很容易:

    var list = [4,5,6];
    list.splice(1,1);
    console.log(list); // [4,6]
    

    所以如果这不起作用,我想知道结果是什么。

    编辑

    顺便说一句,你需要使用:

    var input = document.getElementById('input');
    

    你必须用'var'声明你的变量。

    【讨论】:

    • 它不起作用,因为 (a) files 属性(在甚至支持它的浏览器中)是 FileList 集合而不是 Array,因此,与其他 DOM 类型(如 NodeList)一样,它没有splice 方法。并且 (b),正如 jleedev 所发布的,FileList 是只读的。故意如此,以尽量减少与高度安全敏感的文件上传字段的交互。
    • 还有@Luwe:不必用var 声明她的变量。这是一种很好的做法,如果一个人没有,但他们没有必须这样做,它们最终会进入全局范围。
    • 这是你的结果 Uncaught TypeError: Object # has no method 'splice' (From chrome)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 2013-06-01
    • 1970-01-01
    • 2010-10-02
    • 2017-11-19
    相关资源
    最近更新 更多