2011-08-17 51 views
13

我试图删除或以某种方式取消多个文件的单个输入中的单个值。比方说,我们有四个值...是否可以从文件输入多个元素中删除单个值?

<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的删除功能删除整个元素,所以不起作用。 任何帮助,非常感谢!

回答

14

这是readonly

+1

这是我关心的问题。 –

+0

有没有解决办法? – Alex

1

我很好奇为什么拼接不起作用。通常这很容易做到这一点:

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

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

编辑

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

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

你有 '无功' 来声明变量。

+3

它不起作用,因为(a)'files'属性(在甚至支持它的浏览器中)是FileList集合而不是Array,因此,像其他DOM类型(如NodeList)一样,它没有一种“拼接”方法。和(b)一样,正如jleedev所发布的,FileList是只读的。故意这样做,以尽量保持与高度安全敏感的文件上传领域的互动。 – bobince

+0

也@Luwe:一个人不必用'var'声明她的变量。这是一个很好的做法,如果一个人不这样做,他们最终会在全球范围内,但是一个人不会**。 – ANeves

+0

这是你的结果 未捕获TypeError:对象#没有方法'splice'(来自chrome) – pshirishreddy

相关问题