Foros del Web » Programando para Internet » Jquery »

llamadas ajax se duplican al cerrar el modal

Estas en el tema de llamadas ajax se duplican al cerrar el modal en el foro de Jquery en Foros del Web. Buenas gente, Tengo un formulario de suscripción, el cuál se procesa mediante ventanas modales y AJAX, mi problema es que cuando hago la primera suscripción ...
  #1 (permalink)  
Antiguo 08/07/2016, 09:59
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
llamadas ajax se duplican al cerrar el modal

Buenas gente,

Tengo un formulario de suscripción, el cuál se procesa mediante ventanas modales y AJAX, mi problema es que cuando hago la primera suscripción todo resulta bien, pero al cerrar el modal y volver a clickar sobre el mismo boton de suscribir, en el firebug se ejecutan 2 llamadas AJAX y obviamente los mensajes me duplican los mensajes de error y ayuda.

Pienso que al cerrar debería refrescar el formulario de suscripción, pero la idea es que los datos aún se mantengan en el formulario, donde solo pueda modificar algúno parámentros y continuar con la suscripcuón.

Agradezco cualquier comentario.
  #2 (permalink)  
Antiguo 08/07/2016, 13:49
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: llamadas ajax se duplican al cerrar el modal

podrias motras el codigo a ver, adivinar cuesta mucho tiempo, aunque te adelando que podrias utilizar un jquery como steeps y asi hacer un laaaargo formulario en un mismo modal y realizar un solo envío de toda la informacion
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 11/07/2016, 08:59
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: llamadas ajax se duplican al cerrar el modal

Gracias por tu respuesta,
Código Javascript:
Ver original
  1. $("#openModal").click(function() {
  2.                 if($("#wname").val() == '' || $("#lname").val() == '' || $("#wmail").val() == ''){
  3.                     $('#message-error').html("Los campos no pueden estar vacios");
  4.                     return;
  5.                 }
  6.                 $("#message").empty();
  7.                 var regex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
  8.  
  9.                 if (regex.test($('#wmail').val())) {
  10.  
  11.                                 $('#myModal').modal('show');
  12.  
  13.                                 $('#fin_coach_acept').click(function(event){
  14.                                     $('.whmessage').empty();
  15.                                     $('#message').empty();
  16.                                     datos['usu_nombre'] = $("#wname").val();
  17.                                     datos['usu_apellido'] = $("#lname").val();
  18.                                     datos['pa_id'] = 32;
  19.                                     datos['usu_fechanacimiento'] = '';
  20.                                     datos['sexo'] = $("#sexo_e").val();
  21.                                     datos['firma'] = '';
  22.                                     datos['mail'] = $("#wmail").val();
  23.                                     datos['intereses'] = '';
  24.                                     datos['rol_id'] = 2;
  25.                                     datos['pa_residencia'] = '';
  26.                                     datos['curso'] = $(".whcursos").val();
  27.                                     datos['contmin'] = $("#contmin").val();
  28.                                     datos['contper'] = $("#contper").val();
  29.                                     console.log(JSON.stringify(datos));
  30.                                     $.ajax({
  31.                                         type: "POST",
  32.                                         url: "<?php echo home_url(); ?>/wssetcoach.php",
  33.                                         data: {datosw: JSON.stringify(datos)},
  34.                                         success: function(res){
  35.                                             if(res == 'logrado'){
  36.                                                 $("#message").append("<span style='color:#76292F;'>Usted ya se encuentra registrado como Facilitador con: "+ $("#wmail").val() + "</span>");
  37.                                             } else {
  38.  
  39.                                                 $('.whmessage').append("<p>¡Gracias por registrarte! la cuenta de correo:</p><p>"+$("#wmail").val()+"</p>");
  40.                                                 $('#final').modal('show');
  41.                                                 $('#finalize').click(function(event){
  42.                                                     $(location).attr('href', 'http://www.xxxxx.xxx/active/');
  43.                                                 });
  44.                                                 $('#myModal').modal('hide');
  45.                                                 $('#final').modal('show');
  46.                                                 $('#coach_cancel').click(function(event){
  47.                                                     $('#facilitadorini').modal('hide');
  48.                                                     $('#myModal').modal('show');
  49.                                                 });
  50.                                             }
  51.                                         }
  52.                                     });
  53.                                 });
  54.                 } else {
  55.                     $('#message-error').html("El correo no es válido");
  56.                     return;
  57.                 }
  58.             });
Gracias por tu ayuda, revisare esto de los steeps.
  #4 (permalink)  
Antiguo 11/07/2016, 10:44
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: llamadas ajax se duplican al cerrar el modal

Al parecer, lo que hace es mantener en memoria las ventanas modales que se abre clickando en cada botón, Si te das cuenta dependiendo de cada modál y cada enlace que el usuario dese clickar puede abrir otro modal. Pero cuando cierre la ventana este en realidad no se borra de memoria, he usado:
Código Javascript:
Ver original
  1. $(".close").click(function(){
  2.     $('#studentini').remove();
  3. });
Por ejemplo esto borraría si es que se abrío una ventana modal $('#studentini').remove(); sin embargo al hacer un click en el botón de suscripción, nuevamente me llama las mismas ventanas modales y obviamente como están dentro cada llamda ajax, las vuelve a llamar pero duplicandolos.

Etiquetas: modal
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 01:50.