2011-08-17 36 views
13

Tôi đang cố gắng xóa hoặc bằng cách nào đó vô hiệu hóa một giá trị trong một đầu vào duy nhất cho nhiều tệp. Giả sử chúng tôi có bốn giá trị ...Có thể xóa các giá trị riêng lẻ khỏi phần tử nhập nhiều tệp không?

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

nếu tôi muốn xóa [1] khỏi mảng mà không làm gián đoạn những người khác, tôi có thể làm điều đó không? Tôi đã cố gắng nối, thiết lập giá trị để NULL, thay đổi tên vv Không có công cụ này dường như làm việc (trong khi các yếu tố vẫn readonly = false) Jquery của loại bỏ chức năng loại bỏ toàn bộ phần tử để không hoạt động. Bất kỳ trợ giúp nào được đánh giá cao!

Trả lời

14

Đó là readonly.

+1

Đây là mối quan tâm của tôi. –

+0

Không có công việc xung quanh đó? – Alex

1

Tôi rất tò mò tại sao mối nối không hoạt động. Thông thường nó rất dễ dàng để làm điều này:

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

Vì vậy, nếu điều này không hiệu quả, tôi muốn biết kết quả là gì.

Sửa

Btw, bạn cần sử dụng:

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

Bạn phải khai báo các biến của bạn với 'var'.

+3

Nó không hoạt động vì (a) thuộc tính 'tệp' (trong các trình duyệt hỗ trợ nó) là một bộ sưu tập FileList chứ không phải một mảng, vì vậy, giống như các kiểu DOM khác như NodeList, nó không có phương thức 'splice'. Và (b), như jleedev được đăng, FileList là chỉ đọc. Cố ý như vậy, để cố gắng giữ tương tác với trường tải lên tệp nhạy cảm bảo mật ở mức tối thiểu. – bobince

+0

Ngoài ra @Luwe: người ta không phải khai báo biến của mình bằng 'var'. Đó là thực hành tốt và họ kết thúc trong phạm vi toàn cầu nếu không, nhưng một người không ** có **. – ANeves

+0

Đây là kết quả của bạn Loại vô íchLỗi: Đối tượng # không có phương thức 'ghép nối' (Từ chrome) – pshirishreddy

Các vấn đề liên quan