2011-08-17 12 views
13

Estoy tratando de eliminar o de alguna manera anular un solo valor en una sola entrada para varios archivos. Supongamos que tenemos cuatro valores ...¿Es posible eliminar valores individuales de un elemento múltiple de entrada de archivo?

<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]; 

si quería eliminar [1] de la matriz sin interrumpir a los demás, ¿puedo hacerlo? Intenté empalmar, estableciendo el valor en NULL, cambiando el nombre, etc. Nada de esto parece funcionar (mientras que el elemento sigue siendo readonly = false) La función de eliminación de Jquery elimina todo el elemento para que no funcione. ¡Cualquier ayuda es muy apreciada!

Respuesta

14

Es readonly.

+1

Esta fue mi preocupación. –

+0

¿No hay trabajo alrededor de eso? – Alex

1

Tengo curiosidad por qué empalme no funciona. Normalmente es muy fácil de hacer esto:

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

Así que si esto no funciona, me gustaría saber cuáles son los resultados.

Editar

Por cierto, es necesario utilizar:

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

tienes que declarar las variables con 'var'.

+3

No funciona porque (a) la propiedad 'files' (en los navegadores que incluso soporta) es una colección listaDeArchivos y no una matriz, por lo que, al igual que otros tipos de DOM como NodeList, no tiene un método de 'empalme'. Y (b), como se publicó jleedev, FileList es de solo lectura. Deliberadamente, para tratar de mantener al mínimo la interacción con el campo de carga de archivos altamente confidencial. – bobince

+0

También @Luwe: uno no tiene que declarar sus variables con 'var'. Es una buena práctica y terminan en el ámbito global si uno no lo hace, pero uno no ** tiene **. – ANeves

+0

He aquí los resultados no detectada: TypeError objeto # tiene ningún método 'empalme' (desde Chrome) – pshirishreddy

Cuestiones relacionadas