2017-11-04 6 views
0

간단한 Mailchimp 양식이 내 사이트에 삽입되어 있습니다 (전자 메일 입력 및 제출 버튼 만). 제출 후 자동 Mailchimp 성공 페이지가 열리지 않도록하는 방법을 알아낼 수 없습니까? 이 처리 할 jQuery 함수가 있나요? 제출 후 양식 대신 간단하게 "감사합니다"라는 메시지를 표시하고 싶습니다.jQuery - Mailchimp가 성공한 페이지를 제출시 열지 못하도록하는 방법?

는 여기에 지금까지이 작업은 다음과 같습니다

<div class="newsletter-module" id="mc_embed_signup"> 
       <a href="#" class="news-show"><p>Join mailing list</p></a> 
       <!-- MC SIGNUP FORM --> 
       <form class="signup validate" action="mailchimp-link-here" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" onsubmit="return Validate()"> 
        <span class="newsletter-input-wrapper mc-field-group"> 
         <input class="input-text required email" id="mce-EMAIL" type="email" value="" name="EMAIL" placeholder="email address" required> 
        </span> 
        <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_f2d244c0df42a0431bd08ddea_aeaa9dd034" tabindex="-1" value=""></div> 
        <div id="mce-responses" class="clear"> 
         <div class="response" id="mce-error-response" style="display:none"></div> 
         <div class="response" id="mce-success-response" style="display:none"></div> 
        </div> 
        <label> 
         <input type="submit" name="subscribe" value="Sign Up" id="mc-embedded-subscribe" class="button"> 
        </label> 
        <div id="success-msg"><p>Thank you!</p></div> 
       </form> 
      </div> <!-- .newsletter-module --> 

jQuery를

$(".news-show").click(function(e){ 
     e.preventDefault(); 
     $(this).hide(); 
     $(this).next(".signup").show(); 
    }); 

    $(function(){ 
     $("#success-msg").hide(); 
     $(".button").on("click", function(){ 
      $("#success-msg").show(); 
     }); 
    }); 
+0

당신은 당신의 서버에 메일 침프 SDK를 구현하고 SDK를 실행 스크립트 아약스 요청을해야에게. – charlietfl

답변

0
if (!$email[0].checkValidity()) { 
     return; 
    } 

    $email.prop('disabled', true); 
    $("input[type='submit']", $el).prop('disabled', true); 
    return $.ajax({ 
     type: "GET", 
     url: $el.attr("action").replace('/post', '/post-json'), 
     data: data, 
     cache: false, 
     dataType: "jsonp", 
     jsonp: "c", 
     contentType: "application/json; charset=utf-8", 
     error: function(error) {}, 
     success: function(data) { 
     if ((data.result === "success") || 
      (data.msg && data.msg.indexOf("already subscribed") >= 0) || 
      (data.msg && data.msg.indexOf("too many recent signup requests") >= 0) 
     ) { 
      $el.html('thank you!'); 
      setTimeout(function() { 
      $el.fadeOut(500); 
      }, 2000); 
      $(".news-show").delay(3000).fadeIn(500); 
     } else { 
      $email.prop('disabled', false); 
      ("input[type='submit']", $el).prop('disabled', false); 
     } 
     } 
    }); 
    });