2013-04-06 11 views
5

Desidero limitare l'utente a selezionare fino a 6 file nel tag di input. Attualmente, il mio tag di input è simile al seguente:Come si limita il numero di file caricati in html?

<input type="file" name="question_pic" id="id_question_pic" multiple/> 

Vorrei limitare l'utente a selezionare fino a 6 file. Posso restituire un errore sul lato server, ma voglio che il lato client lo cambi prima.

C'è un modo per farlo?

Grazie.

risposta

5

È possibile utilizzare una funzione di jQuery come questo:

$('.fileinput').change(function(){ 
    if(this.files.length>10) 
     alert('Too many files') 
}); 
// Prevent submission if limit is exceeded. 
$('form').submit(function(){ 
    if(this.files.length>10) 
     return false; 
}); 
+2

È possibile impedire il caricamento di più di 10 file nella funzione di modifica cancellando il valore dell'archivio in questo modo: 'if (this.files.length> 10) {alert ('a molti file'); this.value = ''; } ' Sfortunatamente non è consentito rimuovere elementi dall'oggetto filelist, è possibile solo reimpostare l'intero valore. – Marc

1

È possibile utilizzare jQuery o Javascript per che in questo modo:

<input type="file" name="question_pic" id="id_question_pic" max-uploads = 6/> 

Poi in jQuery si può fare questo come questo

Var number_of_uploads; 
$("#id_question_pic").change(function() { 
    if(number_of_uploads > $(this).attr(max-uploads)) 
    { 
    alert('Your Message'); 
    } 
    else 
    { 
    number_of_uploads = number_of_uploads + 1; 
    } 
}); 

È inoltre possibile eseguire questa operazione durante l'invio del modulo in cui si sta caricando il file. Ma se stai usando il caricamento Ajax, va bene, penso.

Problemi correlati