Il tentativo di impostare il valore con .VAL ('') non riuscirà in alcuni browser (come Internet Explorer) per motivi di sicurezza.
vostri migliori opzioni è per ripristinare il modulo:
$('form').trigger('reset');
o per utilizzare il codice di sostituzione, con una leggera modifica (assicurandosi che il codice HTML valido):
$('#fileUpload1').replaceWith('<input id="fileUpload1" type="file" style="width:275px; position:absolute; left:1px"/>');
Se stile la scatola con i CSS, il tuo codice diventa ancora più semplice.
Il CSS:
#fileUpload1 {
width: 275px;
position: absolute;
left: 1px;
}
La JavaScript:
$('#fileUpload1').replaceWith('<input id="fileUpload1" type="file"/>');
Un'opzione più avanzata è quella di nascondere la finestra di caricamento di file quando la pagina viene caricata, quindi creare un clone di esso che viene mostrato all'utente. Quando hai bisogno di cancellarlo, cancelli il clone, quindi ri-clonò quello nascosto originale. Questo metodo consente inoltre di creare più copie della casella di input se si desidera consentire all'utente di caricare più di un file. Lascerò i dettagli di implementazione a voi. ;)
fonte
2012-08-08 15:08:23
Possibile duplicato: http://stackoverflow.com/q/1043957/663604 –
Io uso quella risposta, ma in realtà non ha successo. – anmarti