2012-11-30 1 views
5

Eventuali duplicati:
Retrieving file names out of a multi-file upload control with javascriptottenere tutti i valori di più file selezionare con jQuery

ottenuto questo:

<input type="file" name="file1" multiple="multiple" /> 

Usando questo in jQuery:

$("input[name=file1]").change(function() { 
    $("input[name=file]").val($("input[name=file1]").val()); 
}); 

Ora il mio problema è questo: dà solo il primo file selezionato, mi piacerebbe averli tutti ... Come si fa? Grazie!

+1

@bvl Assicurarsi che fare clic sul segno di spunta accanto alla risposta corretta, o alla fine le persone smetteranno di aiutarti. Non abbaiare, solo informando :) – TNCodeMonkey

risposta

18

Anche se ho collegato a una possibile vittima nei commenti, è una pura soluzione JavaScript. Ecco una versione jQuery se ti piace: jsFiddle example

$("input[name=file1]").change(function() { 
    var names = []; 
    for (var i = 0; i < $(this).get(0).files.length; ++i) { 
     names.push($(this).get(0).files[i].name); 
    } 
    $("input[name=file]").val(names); 
});​ 
0

Usa .length() per ottenere il numero di file quindi utilizzare un'istruzione, mentre a fare lo stesso per tutti i file, aumentando il numero di 1 ogni volta :)

+0

Non sono sicuro di aver capito bene. Quindi dovrei usare '$ (" input [nome = file1] "). Lunghezza'? questo mi dà anche 1 come risultato. –

+0

Sì, quindi ad esempio i = 0; while (i <= $ ("input [nome = file1]"). Lunghezza) { // cosa fare per ogni file i ++; } –

1

Siete alla ricerca per la proprietà 'files', che restituisce un filelist:

var ele = document.getElementById($(this).attr('id')); 
var result = ele.files; 

Here is the Fiddle for it