Estoy tratando de adoptar jQuery al 100% con su API simple y elegante, pero he encontrado una inconsistencia entre la API y el HTML directo que no puedo descifrar.Método de cambio de jQuery en el tipo de entrada = "archivo"
Tengo un script de carga de archivos AJAX (que funciona correctamente) que quiero ejecutar cada vez que cambia el valor de entrada del archivo. Aquí está mi código de trabajo:
<input type="file" size="45" name="imageFile" id="imageFile" onchange="uploadFile()">
al convertir el evento onchange
a una aplicación de jQuery:
$('#imageFile').change(function(){ uploadFile(); });
el resultado no es el mismo. Con el atributo onchange
, se llama a la función uploadFile()
cada vez que se cambia el valor como se espera. Pero con el controlador de eventos jQuery API .change()
, el evento solo se activa la primera vez que se cambia un valor. Cualquier cambio de valor después de eso se ignora. Esto me parece incorrecto, pero seguramente esto no puede ser un descuido de jQuery, ¿verdad?
¿Alguien más ha tenido el mismo problema y tiene una solución o solución al problema distinta a la que he descrito anteriormente?
¿Está utilizando IE por casualidad? – spig
Generalmente evito IE como la peste. LOL Pero en serio, me desarrollo en Firebox para poder aprovechar Firebug y su genialidad y luego probar en IE, Chrome y Safari. ¿Por qué preguntas? El método .live() (respuesta a continuación) resolvió este problema para mí. – gurun8
@ gurun8 ¿Por qué no tiene su uploadFile() algún parámetro? Quiero llamar a un método ASP.NET MVC como este, pero el javascript debería enviar el archivo que quiere cargar como parámetro –