2016-04-25 4 views
0

Я добавил всплывал форму для подписки на электронную почту, и он дважды посылает по представлению и подтверждающее сообщение также отображается дваждыКонтактная форма подачи дважды

Вот код:

$(document).ready(function() { 
    $(".modalbox").fancybox(); 
    $("#contact").submit(function(e) {  

     e.preventDefault();     

     var emailval = $("#email").val(); 

     var mailvalid = validateEmail(emailval); 

     if(mailvalid == false) { 
      $("#email").addClass("error"); 
     } 
     else if(mailvalid == true){ 
      $("#email").removeClass("error"); 
     } 


     if(mailvalid == true) { 
      // if both validate we attempt to send the e-mail 
      // first we hide the submit btn so the user doesnt click twice 
      $("#send").replaceWith("<em>sending...</em>"); 

      $.ajax({ 
       type: 'POST', 
       url: 'sendmessage.php', 
       data: $("#contact").serialize(), 
       success: function(data) { 
        if(data == "true") { 
         $("#contact").fadeOut("fast", function(){ 
          $(this).before("<p><strong>Success! You have signed up for a trial. A member of our team wil soon be in contact :)</strong></p>"); 
          setTimeout("$.fancybox.close()", 1700); 
         }); 
        } 
       } 
      }); 
     } 
    }); 
}); 

ответ

1

Я надеваю «т думаю, что есть необходимость, чтобы написать эту строку:

$("#contact").submit(function() { return false; }); // Remove this 

Вы можете удалить эту строку:

$("#send").on("click", function(){  // Remove this 

И писать вместо этого:

$("#contact").submit(function(e) {  // Add this 

    e.preventDefault();     // Add this 

    var emailval = $("#email").val(); 

    var mailvalid = validateEmail(emailval); 

    /* Other code */ 

}); 
+0

Большое спасибо! Сначала это не сработало, и я смотрел в Интернете раньше и видел несколько людей, которые положили e.stopImmediatePropagation(); под e.preventDefault(); и это сработало для меня. Еще раз спасибо :) – Ashton

+0

Пожалуйста, не забудьте проголосовать и принять ответ, если он решит вашу проблему. :) –

Смежные вопросы