2011-08-17 15 views
13

Birden çok dosya için tek bir girişte tek bir değeri kaldırmaya veya bir şekilde geçersiz kılmaya çalışıyorum. Diğerlerini aksatmadan diziden [1] kaldırmak istiyorsa ben yapabilirim ... en dört değerlere sahip söylemekTek tek değerleri bir dosya girişi çoklu elemanından kaldırmak mümkün mü?

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

Let? Ekleme denedim, değeri NULL olarak ayarlama, adı değiştirme vb. Bu şeylerin hiçbiri işe yaramıyor gibi görünüyor (öğe readonly = false kalırken) JQuery'in kaldırma işlevi tüm öğeyi kaldırır, böylece çalışmaz. Herhangi bir yardım büyük beğeni topluyor!

cevap

14
+1

Bu benim endişem vardı. –

+0

Bunun etrafında iş yok mu? – Alex

1

Eklemenin neden çalışmadığını merak ediyorum. Normalde bunu yapmak çok kolaydır: Bu işe yaramazsa

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

Yani, sonuç ne olduğunu bilmek istiyorum.

Düzenleme

Btw, kullanmak gerekir:

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

Sen, 'var' ile değişkenleri bildirmek zorundadır.

+3

Bu işe yaramaz çünkü (a) 'files' özelliği (bunu destekleyen tarayıcılarda) bir Arşivi değil, bir FileList koleksiyonudur, bu nedenle NodeList gibi diğer DOM türleri gibi bir 'ekleme' yöntemi. Ve (b), jleedev'in yayınladığı gibi, FileList salt okunurdur. Kasten, yüksek güvenlik duyarlı dosya yükleme alanı ile etkileşimi en aza indirmeye çalışın. – bobince

+0

Ayrıca @Luwe: değişkenlerini "var" ile bildirmek zorunda değil. Bu iyi bir uygulama ve eğer biri yoksa küresel kapsamda bitiyor, ama bir tanesi ** değil. – ANeves

+0

İşte sonuçlarınız Kaçınmayan TypeError: Object # hiçbir yöntem 'splice' (kromdan) var – pshirishreddy

İlgili konular