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

Se puede enviar un formulario aunque este oculto en la web?

Estas en el tema de Se puede enviar un formulario aunque este oculto en la web? en el foro de Frameworks JS en Foros del Web. Hola! Tengo un problema la hora de enviar un formulario que está oculto en la página. El funcionamiento es el siguiente: 1) Aparece un formulario ...
  #1 (permalink)  
Antiguo 09/06/2012, 16:02
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Se puede enviar un formulario aunque este oculto en la web?

Hola!

Tengo un problema la hora de enviar un formulario que está oculto en la página.

El funcionamiento es el siguiente:
1) Aparece un formulario normal con su botón enviar datos(submit)
2) Los datos del formulario se envían mediante una petición en ajax.
3) Según el tipo de respuesta recibida (datos.error_code == 3), oculto el formulario y muestro una pregunta al usuario de CAMBIAR o CANCELAR.
4) Si pulsan CANCELAR $('#cambiar_suscripcion span.no'), hago desaparecer esta pregunta y vuelvo a mostrar el formulario. Está parte todo correcto.
5) Pero si pulsan CAMBIAR $('#cambiar_suscripcion span.yes'), debería ser capaz de volver a enviar la misma petición que cuando pulsaron el botón SUBMIT, es decir, enviar el formulario que está oculto, pero como está oculto con la propiedad hide() y el usuario no apreta sobre un submit, sino sobre un botón <span class="yes">Cambiar</span> no sé como realizarlo :S

Pego el código JS que tengo, mi problema cómo conseguir que el botón $('#cambiar_suscripcion span.yes') haga lo tiene que hacer!

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     $('#respuesta').hide();
  3.     $('#cambiar_suscripcion').hide();
  4.    
  5.     $('#loginform').submit(function(evento){
  6.         $('#respuesta').hide();            
  7.         evento.preventDefault();
  8.         var datos_formulario = $(this).serialize();
  9.         $.ajax({
  10.             url: '/libs/ajax/suscripcion_mail.php',
  11.             data: datos_formulario,
  12.             type: 'POST',
  13.             dataType: 'json',
  14.             success: function(datos){
  15.                 $("#resultados").html('');
  16.                 if (datos.error_code == 0){
  17.                     $('#respuesta').html('<div class="ok_suscripcion"><p>'+datos.resultado+'</p></div>').fadeIn('slow');
  18.                 }else if (datos.error_code == 3){              
  19.                     $('#suscripcion_categorias').hide();
  20.                     $("#cambiar_suscripcion").delay(500);$('#cambiar_suscripcion').fadeIn(500);
  21.                 }else{
  22.                     $('#respuesta').html('<div class="error_suscripcion"><p>'+datos.resultado+'</p></div>').fadeIn('slow');
  23.                 }              
  24.             }
  25.         });
  26.  
  27.     });
  28.    
  29.     $('#cambiar_suscripcion span.no').click(function(){
  30.         $('#cambiar_suscripcion').hide();
  31.         $('#suscripcion_categorias').delay(500);$('#suscripcion_categorias').fadeIn(500);
  32.     });
  33.        
  34.     $('#cambiar_suscripcion span.yes').click(function(){
  35.         // Enviar el formulario......
  36.     });
  37.    
  38. });

¿Se os ocurre alguna forma? se puede enviar un formulario oculto, no? :S

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 11/06/2012, 09:37
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Se puede enviar un formulario aunque este oculto en la web?

Es sencillo, sólo tienes que hacer lo siguiente:

Código Javascript:
Ver original
  1. $('#cambiar_suscripcion span.yes').click(function(){
  2.          $('#loginform').submit();
  3.     });

Etiquetas: ajax, aunque, formulario, funcion, html, js, oculto, php
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 13:16.