martes, 13 de marzo de 2012

Subir ficheros con jQuery Mobile

jQuery Mobile emplea Ajax para el envío de formularios y mediante Ajax no es posible subir ficheros de forma asíncrona (existen plugins o técnicas mediante el uso de frames que simulan el efecto). Por lo que si intentas subir ficheros mediante un simple formulario en una app desarrollada con jQuery Mobile comprobarás que no hay manera de subir el fichero.

La solución, desactivar el uso de Ajax para el envío del formulario. Esto lo podemos hacer de distintas formas:

Extendiéndolas propiedades del objeto $.mobile:
$(document).bind("mobileinit", function(){
  $.extend( $.mobile , {
   ajaxFormsEnabled = false; });
});

O así:
$(document).bind("mobileinit", function(){
   $.mobile.ajaxFormsEnabled = false;
});
O simplemente aplicándoselo a un formulario en particular con data-ajax="false":
<form data-ajax="false" action="subir.php" id="form1" method="post" enctype="multipart/form-data">

3 comentarios :