Come alcuni di voi potrebbero già sapere, l'evento onchange
di Internet Explorer è fondamentalmente rotto prima della versione 9. Anziché attivare quando si verifica una modifica, si attiva quando il campo di input perde lo stato attivo e presenta delle modifiche.Qual è la soluzione alternativa per onchange con gli input dei file?
Questo porta a vari soluzioni alternative per caselle di controllo e pulsanti di opzione ("utilizzare onclick
invece") e campi di testo ("utilizzare invece keyup
").
Tuttavia, sto riscontrando questo problema per un input di file, e non riesco a capire cosa devo fare per essere avvisato che un nuovo file è stato selezionato, subito dopo, e non quando l'utente fa clic altrove . Non riesco ad associarmi a un evento del mouse perché non è correlato al mouse; e non riesco a collegarmi a un evento di tastiera perché non è collegato nemmeno alla tastiera.
Sarei disposto ad utilizzare materiale specifico di IE se è in grado di risolvere il problema.
informazioni supplementari:
io uso jQuery 1.6 e il metodo live
per fissare l'evento.
$(".upload").live("change", function() { /* stuff here */ });
alcune chiacchiere su questo problema qui: http://stackoverflow.com/questions/2389341/jquery-change-event-to-input-file-on-ie –
http://jsfiddle.net/c8JuC/1/ funziona su IE9 con IE7 emulato. – pimvdb
@pimvdb, io uso 'live' perché genera una serie di input al volo e l'evento non viene attivato al momento giusto con esso (jquery 1.6). – zneak