Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/06/2012, 16:02
Avatar de neodani
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!