复制ajax以调用模态并关闭

时间:2016-07-11 17:46:22

标签: javascript php jquery ajax

我有一个订阅表单,它通过模态窗口工作,但当我关闭窗口并返回单击按钮订阅ajax调用是重复的,这是一个错误。

            $("#openModal").click(function() {
            if($("#wname").val() == '' || $("#lname").val() == '' || $("#wmail").val() == ''){
                $('#message-error').html("Los campos no pueden estar vacios");
                return;
            }
            $("#message").empty();
            var regex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
            if (regex.test($('#wmail').val())) {
                $('#myModal').modal('show');
                $('#fin_coach_acept').click(function(event){
                    $('.whmessage').empty();
                    $('#message').empty();
                    datos['usu_nombre'] = $("#wname").val();
                    datos['usu_apellido'] = $("#lname").val();
                    datos['pa_id'] = 32;
                    datos['usu_fechanacimiento'] = '';
                    datos['sexo'] = $("#sexo_e").val();
                    datos['firma'] = '';
                    datos['mail'] = $("#wmail").val();
                    datos['intereses'] = '';
                    datos['rol_id'] = 2;
                    datos['pa_residencia'] = '';
                    datos['curso'] = $(".whcursos").val();
                    datos['contmin'] = $("#contmin").val();
                    datos['contper'] = $("#contper").val();
                    console.log(JSON.stringify(datos));
                    $.ajax({
                        type: "POST",
                        url: "<?php echo home_url(); ?>/wssetcoach.php",
                        data: {datosw: JSON.stringify(datos)},
                        success: function(res){
                            if(res == 'logrado'){
                                $("#message").append("<span style='color:#76292F;'>Usted ya se encuentra registrado como Facilitador con: "+ $("#wmail").val() + "</span>");
                            } else {

                                $('.whmessage').append("<p>¡Gracias por registrarte!. Desde ahora eres parte de ActiveMind. Se enviarán los datos de acceso al Sistema Académico a la cuenta de correo:</p><p>"+$("#wmail").val()+"</p><p>Cualquier consulta envía un correo electrónico a la dirección:</p><p>am@activemind.center</p>");
                                $('#final').modal('show');
                                $('#finalize').click(function(event){
                                    $(location).attr('href', 'http://www.activemind.center/active/');
                                });
                                $('#myModal').modal('hide');
                                $('#final').modal('show');
                                $('#coach_cancel').click(function(event){
                                    $('#facilitadorini').modal('hide');
                                    $('#myModal').modal('show');
                                });
                            }
                        }
                    });
                });
            } else {
                $('#message-error').html("El correo no es válido");
                return;
            }
        });

显然,方式保存在内存中,已使用以下代码删除它但不起作用:$('#studentini')。remove();

任何想法解决方案对我都有用,谢谢

1 个答案:

答案 0 :(得分:0)

查看使用jquery的off()方法,以避免每次打开模式时再次添加点击处理程序。

var $openBtn = $("#openModal");

$openBtn.off().click(fn);

或使用事件委派来避免此问题:

var $document = $(document);

document.on('click', '#openModal', fn);