Почему AJAX срабатывает несколько раз при загрузке URL как AJAX в fancybox? - PullRequest
0 голосов
/ 09 марта 2020

Мне нужно fancybox для отображения подтверждающего сообщения после того, как пользователь отправит форму (с AJAX). Контроллер (add-comment. php) затем отправляет электронное письмо пользователю. Вот мой JS код:

$("form[name='add-comment-form']").on("submit", function(event){
var formData = $(this).serialize();
$.ajax({
    type : 'POST',
    url : '/add-comment',
    data : formData,
    dataType : 'json',
    encode : true
}).done(function(){
    $.fancybox.open({
        href : 'comment-added-confirmation',
        type : 'ajax',
        afterShow : function(){
            // to unbind fancybox:
            fancybox_destroy();
        }
    });
});
event.preventDefault ? event.preventDefault() : (event.returnValue = false);

});

Все в порядке, пока пользователь не отправит форму снова - без перезагрузки / обновления страницы. В таком случае электронное письмо отправляется дважды . Если пользователь отправляет форму снова - электронная почта отправляется три раза, и так далее, и так далее ...

Все будет хорошо, если вместо этого я запусту fancybox с приведенным ниже кодом:

$.fancybox.open('<div class="message">Thank you for your comment!</div>');

Как избежать отправки электронной почты несколько раз, пожалуйста?

...