>

코딩의 초보자이지만 jquery를 사용하여 폼을 보유하는 div 컨테이너에 클래스를 추가하여 표시를 사용하여 숨길 클래스를 추가하여 폼을 제출 한 후 구독 메시지에 대해 감사를 표시하려고합니다. 그 자리에 감사 메시지를 추가하지 마십시오. 아래 코드를 사용하고 있습니다 :

$('#mc-embedded-subscribe-form').submit(function(){
    var element = document.getElementById("newsletterform");
    element.classList.add("success");
    element.innerHTML += '<div class="thanks">Thanks for Subscribing!</div>';
    $('#mc-embedded-subscribe-form').submit();
});

html은 다음과 같습니다

<html>
<head>
<style>
    .success{
        group_input{
            display:none;
        }
    }
</style>
</head>
<body>
    <iframe name="votar" style="display:none;"></iframe> 
    <div id="newsletterform">
    <form action="{{ settings.mailchimp_form_action }}" method="post" name="mc-embedded-subscribe-form" target="votar">
    <div class="group_input">
      <input type="text" value="" name="COMPANY" class="" id="mce-COMPANY">
      <input type="email" name="EMAIL" placeholder="{{ settings.news_input }}" /><button  class="btn" type="submit">{{settings.news_actiontext}}</button>
    </div>       
    </form>
    </div>
</body>

양식을 숨기고 감사 메시지를 표시하지만 이메일 주소는 제출하지 않습니다. 액션 URL에 게시하기 전에 이메일이 삭제 된 것과 같습니다.

나는 또한 $('#mc-embedded-subscribe-form').submit(); 이동 시도  var 선언 위에 있으며 이메일 주소가 포함 된 양식을 제출하지만 감사 메시지가 표시되지 않습니다.

내가 뭘 잘못하고 있니?

감사합니다!

  • 답변 # 1

    아약스를 통해 양식을 제출해보십시오 :

    $("form#mc-embedded-subscribe-form").submit(function(e){
        e.preventDefault();
        $.ajax({
            type: "POST",
            url: $(this).attr('action'),
            data: $(this).serialize(), // serializes the form's elements.
            success: function(data)
            {
                var element = document.getElementById("newsletterform");
                element.classList.add("success");
                element.innerHTML += '<div class="thanks">Thanks for Subscribing!</div>';
            }
        });
    });
    
    

관련 자료

  • 이전 wso2sp - wso2 스트림 처리에서 원격 mongodb 인스턴스에 쓸 수 없습니다
  • 다음 python - 하나의 위젯을 포장하고 다른 키를 누를 때 다른 위젯을 모두 제거하는 기능 만들기