2011-01-10 12 views
6

Questo è molto strano. Ho una forma semplice. Ho un elemento di input file all'esterno di in questo modulo. scattaImpossibile clonare l'elemento di input del file in Safari e Chrome. FF e Opera sono OK

utente l'elemento di input file e seleziona un file. Clono l'input di file utilizzando questo codice:

$('input[name="song[attachment]"]').clone(true).appendTo('form') 

In tutti i browser: FF, Opera, Safari, Chrome, quando ho ispezionare l'elemento del modulo, vedo l'elemento di input file di clonata all'interno del modulo. Tuttavia, quando invio il modulo in FF e Opera, funziona. Safari e Chrome inoltrano il modulo con un input di file vuoto.

ho notato quando l'elemento di input file viene clonato e aggiunto al elemento del modulo, non copia sui suoi valori. Clona solo un elemento di file di input vuoto. È normale?

C'è qualcosa di sbagliato con il mio codice jQuery? Oppure si tratta di un problema di sicurezza ed è per questo che Safari e Chrome non mi consentono di farlo? Se quest'ultimo, perché FF e Opera stanno facendo diversamente?

risposta

1

Non è possibile dare un valore predefinito per un ingresso di file, o addirittura modificarlo in js. Il suo valore predefinito è sempre vuoto. Questo è un problema di sicurezza in cui qualcuno può nascondere un input di file (ad esempio display:none) e caricare dati sensibili dal computer di un cliente a sua insaputa.

Per quanto riguarda la seconda parte della tua domanda, io non sono del tutto sicuro per il problema, ma solo un'idea. Hai un ID sul tuo input? Se è così, dovresti tener conto che deve essere unico nel DOM.

+2

Invece di clonare, ho spostato l'elemento di input del file. Sembra copiare i valori –

Problemi correlati