Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problemas con el ajaxSubmit

Estas en el tema de Problemas con el ajaxSubmit en el foro de Frameworks JS en Foros del Web. Saludos a todos, tengo un problema con el plugin ajaxSubmit, les explico: En primer lugar uso ese plugin solo para subir un archivo y devolver ...
  #1 (permalink)  
Antiguo 10/08/2012, 09:49
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 16 años
Puntos: 2
Pregunta Problemas con el ajaxSubmit

Saludos a todos, tengo un problema con el plugin ajaxSubmit, les explico:

En primer lugar uso ese plugin solo para subir un archivo y devolver el contenido en XML, eso lo hace muy bien, luego abro un dialog ui modal y realizo otras operaciones, tambien bien, el problema se presenta cuando cierro el modal por medio de un button, lo que sucede es que se bloquea el file input y los demas controles, excepto los button de las acciones, entonces ya no puedo escoger otro archivo para subirlo, esta como deshabilitado, pero no tiene ese attributo, por si acaso le hago 'disabled' dinamicamente y tampoco, el enable(true o false) tampoco me obedecen, en conclusion no se pueden hacer mas acciones, tampoco selecciona los labels, y lo raro es que cuando cierro el modal con la [X] Close de mismo ui-dialog modal no ocurre esto, en si, hago las mismas acciones cuando se cierra el modal, en el button, pero pasa esto, busque y parece que a nadie le ha pasado esto, y si es asi, me pueden dar una mano??.

Aqui dejo el codigo.

Código Javascript:
Ver original
  1. Pagina que traigo con Ajax
  2.  
  3. JS.
  4. Funcion Ajax
  5. function fu_doItemMenu(url, target, method){
  6.     $.ajax({
  7.         async: true,
  8.         url: url,
  9.         type: (method)?method:'POST',
  10.         success: function(data){
  11.             if(typeof(target)!='undefined'){
  12.                 $("#"+target).html($(data));
  13.             }
  14.         }
  15.     });
  16. }
  17.  
  18. function cerrarVentanaPopup(){
  19.     if (confirm("Al cerrar perderá los cambios no guardados, desea continuar..? !!")){
  20.         var idfile = $('#idObjFile').get(0).innerHTML;
  21.         idfile = idfile.substr(5, 36);
  22.         $( "#dialog-form" ).parent().remove();
  23.         $( "#dialog-form" ).remove();
  24.         $('.ui-widget-overlay').remove();
  25.         fu_doQuitarfile_car('deletefileloader.htm','undefined','POST', idfile);
  26.         fu_doItemMenu('vercargamagnetico.htm', 'myFrame', 'POST');
  27.         return true;
  28.     }else{
  29.         return false;
  30.     }
  31. }
  32.  
  33. Ventana de Dialogo
  34. function fu_openVentanaCarga(){
  35.     var idfile = $('#idObjFile').get(0).innerHTML;
  36.     idfile = idfile.substr(5, 36);
  37.     $( "#dialog-form" ).dialog({
  38.         autoOpen      : false,
  39.         bgiframe      : true,
  40.         closeOnEscape : false,
  41.         resizable     : false,
  42.         modal         : true,
  43.         width         : 920,
  44.         height        : 670,
  45.         zIndex        : 1002,
  46.         dialogClass   : 'popup_dialog',
  47.         title         : 'Registro y Carga de datos del Medio Magnético a la Base de datos',
  48.         close: function() {
  49.             $(this).remove();
  50.             fu_doQuitarfile_car('deletefileloader.htm','undefined','POST', idfile);
  51.             fu_doItemMenu('vercargamagnetico.htm', 'myFrame', 'POST');
  52.         },
  53.         beforeClose: function(event, ui) {
  54.             if (confirm("Al cerrar perderá los cambios no guardados, desea continuar..? !!")){
  55.                 return true;
  56.             }else{
  57.                 return false;
  58.             }
  59.         }
  60.     });
  61.     $("#dialog-form").dialog('open');
  62. }
  63.  
  64. function fu_VentanaCarga(){
  65.     $('body').append($("<div id='dialog-form' style='z-index:1;'></div>"));
  66.     var canRegistros = $('#canRegistros').get(0).innerHTML;
  67.     var idfile = $('#idObjFile').get(0).innerHTML;
  68.     estadoBoton('cmdNewVerify_car', true);
  69.     estadoBoton('cmdSendRecord_car',true);
  70.     estadoBoton('cmdRegresar_car',  true);
  71.     fu_openVentanaCarga();
  72.     idfile = idfile.substr(5, 36);
  73.     canRegistros = canRegistros.toString().replace("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;","");
  74.     fu_doItemMenu_Car('registrocarga.htm', 'dialog-form', 'POST', idfile);
  75. }
  76.  
  77.  
  78. Funciones que mandan el archivo a verificar por ajaxSubmit
  79.  
  80. $('#cmdVerificar_car').click(function(event){
  81.     var filename = $('input[name=fileName_car]').val();
  82.     if(jQuery.trim(filename) == ""){
  83.         $('#resultados').html('');
  84.         alert("Por favor, ubique el archivo a verificar...!!");
  85.         setTimeout(function(){
  86.             $('#fileName_car').focus();
  87.         }, 100);
  88.         $('#fileName_car').select();
  89.         event.stopPropagation();
  90.         event.preventDefault();
  91.         return false;
  92.     }
  93.     fncSendVerify_car();
  94.     event.stopPropagation();
  95.     event.preventDefault;
  96. });
  97.  
  98. function fncSendVerify_car(){
  99.     $('#resultados').html('');
  100.     var options = {
  101.         url         : 'verificafile.htm',
  102.         beforeSubmit: showRequest,
  103.         success     : showResponse,
  104.         type        : 'POST',
  105.         dataType    : 'xml'
  106.     };
  107.     $('#frmDatos').ajaxSubmit(options);
  108. }
  109.  
  110. function showRequest(formData, jqForm, options) {
  111.     var queryString = $.param(formData);
  112.     //alert('About to submit: \n\n' + queryString);
  113.     return true;
  114. }


De antemano, muchas gracias, por la atencion.

Renzo.
  #2 (permalink)  
Antiguo 10/08/2012, 09:51
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 16 años
Puntos: 2
Respuesta: Problemas con el ajaxSubmit

Código HTML:
Ver original
  1. El resto del codigo.
  2.  
  3. Pagina HTML
  4.     <head>
  5.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6.         <c:set var="ctx" value="${pageContext.request.contextPath}" scope="request" />
  7.         <script type="text/javascript" src="${ctx}/js/utiles.js"></script>
  8.         <script type="text/javascript" src="${ctx}/js/recepcion/carga.js"></script>
  9.         <!--script type="text/javascript" src="${ctx}/js/jquery.form.js"></script-->
  10.         <link   type="text/css" href="${ctx}/css/cssfirmatablas.css" rel="stylesheet" />
  11.         <style type="text/css">
  12.             @import "${ctx}/css/cssverfirmas.css";
  13.             @import "${ctx}/css/cssfirmacuadro.css";
  14.             @import "${ctx}/css/cssfirmatablas.css";
  15.         </style>
  16.     </head>
  17.     <body>
  18.     <div>
  19.         <div class="Postbox_new SizeNormal_new BoxStatus3_new">
  20.             <div class="PostHeader_new HeaderStatus3M_new" style="padding-left: 9px;">
  21.                 <div class="PostDate3_new" style="padding-top: 0px; float: left;">
  22.                     <img alt="nuevo"  src="${ctx}/images/icon_guardar.png" style=" background-color: #FFFFFF; background-repeat: no-repeat; border: 1px solid #0D4D68;" />
  23.                </div>
  24.                <div class="PostAuthor_new" style="padding-left: 50px; padding-top: 11px; text-transform: uppercase;">Verificaci&oacute;n del Medio Magn&eacute;tico y carga de registros a la base de datos</div>
  25.                 <div class="clear_new"></div>
  26.             </div>
  27.  
  28.             <div class="rowcontent" style="height: 90px; margin-bottom: 0px;" id="rowcontentarchivo">
  29.                 <div class="contenedor" style="margin-left: 25px; margin-top: 20px;">
  30.                     <label for="dnirepree">Verificador del archivo <b>LIS_ADE.DBF</b>
  31.                         <span class="smallfont_arcver">Seleccione ubicaci&oacute;n del archivo</span>
  32.                     </label>
  33.                     <form id="frmDatos" method="POST" enctype='multipart/form-data' action="" onsubmit="return checkSubmit();">
  34.                         <input id="fileName_car" class="txtFile" type="file" size=50 name="fileName_car" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  35.                         <input type="button" id="cmdVerificar_car" class="btn primary large_arcver" value="Verificar archivo" />
  36.                     </form>
  37.                 </div>
  38.             </div>
  39.             <div class="rowcontent selector" id="resultadoVerificacion">
  40.                 <div id="resultados" class="scriptDemoTabla" style="width:94%; padding-left: 24px;"></div>
  41.             </div>
  42.  
  43.             <div class="PostFooter_new SizeSmall_new FooterStatus3_new">
  44.                 <button id="cmdNewVerify_car"  class="btn primary large" style="width: 165px;" onclick ="nuevaverificacion_carga();">Nueva verificaci&oacute;n</button>&nbsp;&nbsp;&nbsp;
  45.                 <button id="cmdSendRecord_car" class="btn primary large" style="width: 185px;" onclick ="fu_VentanaCarga();">Registrar archivo</button>&nbsp;&nbsp;&nbsp;
  46.                 <button id="cmdRegresar_car"   class="btn primary large" onclick="javascript:location.reload(true)">Cerrar</button>
  47.             </div>
  48.         </div>
  49.     </div>  
  50.     <script type="text/javascript">
  51.     $(document).ready(function () {
  52.         $('#fileName_car').remove();
  53.         var form=$('#frmDatos');
  54.     var innerInputFile=$('<input id="fileName_car" class="txtFile" type="file" size=50 name="fileName_car" style="display:inline; float:left;" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
  55.             form.append(innerInputFile);
  56.             //procesa(true);
  57.     });
  58.     </script>
  59.     </body>
  60. </html>
  61.  
  62. Funcion que trae los datos procesados en XML
  63. function showResponse(responseXML, statusXML, xhr, $form)  {
  64.     var estado = false;
  65.     var html="";
  66.     var i=0;
  67.     $('#objFilasEncontradas tr').remove();
  68.     $('#tblResultados tbody').remove();
  69.     $('#resultados').html('');
  70.     $(responseXML).find('registrosencontrados').each(function(){
  71.         var coError = $(this).find('co_error').text();
  72.         var coRuta  = $(this).find('obj_path_file').text();
  73.         var coCont  = $(this).find('obj_cont_ent').text();
  74.         var coSize  = $(this).find('obj_size_file').text();
  75.         var caRecor = $(this).find('obj_cant_regis').text();
  76.         var codKey  = $(this).find('obj_key_file').text();
  77.         if (coError == "EST_REG_OK"){
  78.             html += ('<table id="tblResultados" class="table" align="center" style="font-size: 12px;">');
  79.             html += ('<thead>');
  80.             html += ('<tr class="codeHd" style="border-bottom: 1px solid #CECECE";>');
  81.             html += ('<th colspan="7" style="padding: 5px 11px;">Resultado de la Verificaci&oacute;n del Medio Magn&eacute;tico</th>');
  82.             html += ('</tr>');
  83.             html += ('<tr>');
  84.             html += ('<th colspan="7">&nbsp;</th>');
  85.             html += ('</tr>');
  86.             html += ('<tr>');
  87.             html += ('<th colspan="2" align="right" style="color: #00659D;">Nombre del archivo : </th>');
  88.             html += ('<th colspan="5" align="left" id="pathFile">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+ coRuta +'</th>');
  89.             html += ('</tr>');
  90.             html += ('<tr>');
  91.             html += ('<th colspan="2" align="right" style="color: #00659D;">Conteo de registros : </th>');
  92.             html += ('<th colspan="5" id="canRegistros" align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+ caRecor +'</th>');
  93.             html += ('</tr>');
  94.             html += ('<tr>');
  95.             html += ('<th colspan="2" align="right" style="color: #00659D;">Tama&ntilde;o : </th>');
  96.             html += ('<th align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+ coSize +'</th>');
  97.             html += ('<th align="right" style="color: #00659D;">Tipo de archivo : </th>');
  98.             html += ('<th colspan="3" align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+ coCont +'</th>');
  99.             html += ('</tr>');
  100.             html += ('<tr>');
  101.             html += ('<th colspan="7">&nbsp;</th>');
  102.             html += ('</tr>');
  103.             html += ('<tr class="codeHd" style="border-top: 1px solid #CECECE;border-bottom: 1px solid #CECECE";>');
  104.             html += ('<th style="padding: 5px 11px;">Item</th>');
  105.             html += ('<th>Nombre</th>');
  106.             html += ('<th>Descripcion</th>');
  107.             html += ('<th>Tipo</th>');
  108.             html += ('<th>Ancho</th>');
  109.             html += ('<th>Decimal</th>');
  110.             html += ('<th>Resultado</th>');
  111.             html += ('</tr>');
  112.             html += ('</thead>');
  113.             html += ('<tfoot>');
  114.             html += ('<tr class="codeHd" style="border-top: 1px solid #CECECE";>');
  115.             if (jQuery.trim(codKey) != ""){
  116.                 html += ('<th id="idObjFile" colspan="7" align="left" style="padding: 7px 11px;">ID : ' + codKey + '</th>');
  117.                 estado = true;
  118.             }else{
  119.                 html += ('<th colspan="7" style="padding: 7px 11px;">&nbsp;</th>');
  120.             }
  121.             html += ('</tr>');
  122.             html += ('</tfoot>');
  123.             html += ('<tbody id="objFilasEncontradas">');
  124.             $(responseXML).find('detalleLista').each(function(){
  125.                 i++
  126.                 var objItem  = $(this).find('obj_nom_campo').text();
  127.                 var objItem1 = $(this).find('obj_des_campo').text();
  128.                 var objItem2 = $(this).find('obj_tipo_campo').text();
  129.                 var objItem3 = $(this).find('obj_long_campo').text();
  130.                 var objItem4 = $(this).find('obj_deci_campo').text();
  131.                 var objItem5 = $(this).find('obj_estado_campo').text();
  132.                 var objItem6 = $(this).find('obj_flag_campo').text();
  133.                 html += ('<tr>');
  134.                 html += ('<td class="right" style="background:#E9E9E9">' + i + '</td>');
  135.                 html += ('<td>' + objItem + '</td>');
  136.                 html += ('<td>' + objItem1 + '</td>');
  137.                 html += ('<td>' + objItem2 + '</td>');
  138.                 html += ('<td class="right">' + objItem3 + '</td>');
  139.                 html += ('<td class="right">' + objItem4 + '</td>');
  140.                 html += ('<td>' + evaluaRespuesta(objItem5) + '</td>');
  141.                 html += ('<td style="display:none">' + objItem6 + '</td>');
  142.                 html += ('</tr>');
  143.             });
  144.             html += ('</tbody>');
  145.             html += ('</table>');
  146.             html += ('<br>');
  147.             $('#resultados').append($(html));
  148.         }
  149.         if (coError == "EST_REG_VACIO"){
  150.             html += ('<table id="tblResultados" class="table" align="center" style="font-size: 12px;">');
  151.             html += ('<thead>');
  152.             html += ('<tr class="codeHd" style="border-bottom: 1px solid #CECECE";>');
  153.             html += ('<th colspan="7" style="padding: 5px 11px;">Resultado de la Verificaci&oacute;n del Medio Magn&eacute;tico</th>');
  154.             html += ('</tr>');
  155.             html += ('<tr>');
  156.             html += ('<th colspan="7">&nbsp;</th>');
  157.             html += ('</tr>');
  158.             html += ('</thead>');
  159.             html += ('<tfoot>');
  160.             html += ('<tr class="codeHd" style="border-top: 1px solid #CECECE";>');
  161.             html += ('<th colspan="7" style="padding: 5px 11px;">&nbsp;</th>');
  162.             html += ('</tr>');
  163.             html += ('</tfoot>');
  164.             html += ('<tbody id="objFilasEncontradas">');
  165.             html += ('<tr>');
  166.             html += ('<td colspan="7" style="background:#E9E9E9"; color: Red; font-wieght: bold;>No se verifico el archivo....!!</td>');
  167.             html += ('</tr>');
  168.             html += ('</tbody>');
  169.             html += ('</table>');
  170.             html += ('<br>');
  171.             $('#resultados').append($(html));
  172.         }
  173.     });
  174.     replica("fila");
  175.     //estadoControles_car(true);
  176.     //evaluaBoton_car('cmdSendRecord_car',!estado);
  177. }
  #3 (permalink)  
Antiguo 10/08/2012, 10:00
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 6 meses
Puntos: 220
Respuesta: Problemas con el ajaxSubmit

Lo que sucede es que cuando tu usas el dialog de JQuery este lo que hace es poner una capa en todo el Screen de la Web haciendo que parezca deshabilitado por eso cuando tu presionas el close del dialog este funciona correctamente, pero cuando tu en cambio generas un evento cerrando el dialog lo que estas haciendo es eliminar la capa que contiene el dialogo pero no la capa que se encuentra tapando todo el screen de tu Web.

Lo que deberias hacer es llamar la instancia de tu dialog y cerrarlo con el mismo evento del control asi

$(foo).dialog('close')

donde foo es el id de tu dialog
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #4 (permalink)  
Antiguo 10/08/2012, 10:11
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 16 años
Puntos: 2
Respuesta: Problemas con el ajaxSubmit

Hola Gracias por responder.

Me explico, usando $('#dialogo-form').dialog('close'), no sucede nada, al principio lo usaba tal y como dice el tutorial de jquery-ui pero nunca funciono, asi que una de las medidas que use fue eliminar todas las capas, como puede apreciar que ahi remuevo incluso parent y un overlay que se queda asi:
Código Javascript:
Ver original
  1. $( "#dialog-form" ).parent().remove();
  2.         $( "#dialog-form" ).remove();
  3.         $('.ui-widget-overlay').remove();

por que ya no veia la solucion, y con eso se quedo, incluso estoy agregando un buttons al dialog para hacerle close pero nada, no me responde, la version de jquery es la 1.7

Saludos.
  #5 (permalink)  
Antiguo 10/08/2012, 10:19
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 6 meses
Puntos: 220
Respuesta: Problemas con el ajaxSubmit

Como digo siempre a todos no te guies siempre que un elemento va a estar dentro de otro elemento y mas aun cuando se utiliza JQUERY porque este puede ponerlo en donde sea y es el motivo principal porque no esta cerrando correctamente como quieres trata de usar las herramientas de debug que tienes los navegadores como el firebug el inspector de crhome y detectar cual es la capa que esta bloqueando los controles una vez teniendo esa capa le sacas su id o class y con eso lo eliminas, y debería ser todo
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #6 (permalink)  
Antiguo 10/08/2012, 10:24
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 16 años
Puntos: 2
Respuesta: Problemas con el ajaxSubmit

uso el firebug, y creo que voy a tomar algunas medidas extremas..

una consulta, sabras como se puede emular la funcion que hace el close[X] del ui-dialog o a que evento llama..??

gracias por responder....

saludos,.
  #7 (permalink)  
Antiguo 10/08/2012, 10:28
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 6 meses
Puntos: 220
Respuesta: Problemas con el ajaxSubmit

Una consulta el boton que cierras el dialog se encuentra dentro de este pues si esto fuera cierto deberias usar la propiedad buttons que tiene el dialog

http://jqueryui.com/demos/dialog/#modal-message
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #8 (permalink)  
Antiguo 10/08/2012, 10:38
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 16 años
Puntos: 2
Respuesta: Problemas con el ajaxSubmit

mira:

Código Javascript:
Ver original
  1. function fu_openVentanaCarga(){
  2.     var idfile = $('#idObjFile').get(0).innerHTML;
  3.     idfile = idfile.substr(5, 36);
  4.     $( "#dialog-form" ).dialog({
  5.         autoOpen      : true,
  6.         bgiframe      : true,
  7.         closeOnEscape : false,
  8.         resizable     : false,
  9.         modal         : true,
  10.         width         : 920,
  11.         height        : 670,
  12.         zIndex        : 1002,
  13.         dialogClass   : 'popup_dialog',
  14.         title         : 'Registro y Carga de datos del Medio Magnético a la Base de datos',
  15.         close: function() {
  16.             fu_doQuitarfile_car('deletefileloader.htm','undefined','POST', idfile);
  17.             fu_doItemMenu('vercargamagnetico.htm', 'myFrame', 'POST');
  18.             //$(this).dialog( 'close' );
  19.         },
  20.         beforeClose: function(event, ui) {
  21.             if (confirm("Al cerrar perderá los cambios no guardados, desea continuar..? !!")){
  22.                 return true;
  23.             }else{
  24.                 return false;
  25.             }
  26.         },
  27.         buttons: {
  28.                 Ok: function() {
  29.                     $( this ).dialog( "close" );
  30.                 }
  31.         }
  32.     });
  33.     //$("#dialog-form").dialog('open');
  34. }

lo acabo de agregar y nada... no me hace caso, no sera quizas porque uso un widget personalizado, http://jqueryui.com/download, lo personalice, pero naaaa, me parece que el bloqueo es mas por el ajaxSubmit ya que le quite en el firebug todas las clases, codigo y solo me quede con el input file asi calatito, pero naaaa

Código HTML:
Ver original
  1. <form id="frmDatos" method="POST" enctype="multipart/form-data" action="" onsubmit="return checkSubmit();">
  2.                         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  3.                         <input type="button" id="cmdVerificar_car" class="btn primary large_arcver" value="Verificar archivo">
  4. <input type=file />
  5.                     </form>
  #9 (permalink)  
Antiguo 10/08/2012, 10:53
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 6 meses
Puntos: 220
Respuesta: Problemas con el ajaxSubmit

Que raro yo acabo de probar solamente bajandome el dialog y al poner buttons OK, Cancel me funciona correctamente

Si tratas de poner el OK entre comillas por si las moscas

No tendras un link a tu pagina para poder verlo
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones

Última edición por Dradi7; 10/08/2012 a las 11:05
  #10 (permalink)  
Antiguo 10/08/2012, 11:17
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 16 años
Puntos: 2
Respuesta: Problemas con el ajaxSubmit

Estoy atacando el problema del bloqueo por el ajaxSubmit, me parece que lo del close es mas por el widget personalizado, porque aqui tambien un amigo me paso su codigo que le sale, pero al aplicarlo a mi dialog no... debe ser eso...

sorry, solo lo tengo en localhost, pero cuando lo suba, avisare, que vaina esto....

Gracias por responder.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:18.