Mailchimp注册表单不工作订阅按钮

时间:2015-08-24 10:33:12

标签: javascript jquery

这是我的JSFIDDLE

当我运行此代码时,当我点击订阅按钮时,什么也没发生。

我试图更改放置代码的位置,但我仍然找不到错误。

<div class='popup'>
<div class='cnt223'>
<img src='http://s14.postimg.org/w3j8ay2bh/1440412582_cross_24.png' 
alt='quit' class='x' id='x' />
<p>
<div id="mc_embed_signup">
<form action"//wafytech.us11.list-manage.com/subscribe
/post?u=4cc1d72c9827dd3ef80675e4c&amp;id=4d5daa8c14" method="post" id="mc-
embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" 
target="_blank" novalidate>
 <div id="mc_embed_signup_scroll">
    <h2>Subscribe to our mailing list</h2>
<div class="indicates-required"><span class="asterisk">*</span> indicates 
required</div>
<div class="mc-field-group">
    <label for="mce-EMAIL">Email Address  <span class="asterisk">*</span>
</label>
    <input type="email" value="" name="EMAIL" class="required email" id="mce-
EMAIL">
</div>
<div class="mc-field-group">
    <label for="mce-FNAME">First Name </label>
    <input type="text" value="" name="FNAME" class="" id="mce-FNAME">
</div>
<div class="mc-field-group">
    <label for="mce-LNAME">Last Name </label>
    <input type="text" value="" name="LNAME" class="" id="mce-LNAME">
</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>    <!-- real people should not fill this in and expect good 
things - do not remove this or risk form bot signups-->
    <div style="position: absolute; left: -5000px;"><input type="text" 
name="b_4cc1d72c9827dd3ef80675e4c_4d5daa8c14" tabindex="-1" value=""></div>
    <div class="clear">
    <input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-
subscribe" class="button"></div>
    </div>
</form>
</div>
<br/>
</p>
</div>
</div>

1 个答案:

答案 0 :(得分:1)

错误是因为您在文档加载前已加载http://s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js

在第196行,您有以下内容:

    getAjaxSubmitUrl: function() {
        var url = $("form#mc-embedded-subscribe-form").attr("action");
        url = url.replace("/post?u=", "/post-json?u=");
        url += "&c=?";
        return url;
    },

它在url = url.replace("/post?u=", "/post-json?u=");上给出了错误,因为$("form#mc-embedded-subscribe-form")由于未加载文档而无法获取正确的元素。因此,.attr("action")将返回undefined。尝试将.ready事件侦听器添加到整个代码中。

另外,正确的方法是$("#mc-embedded-subscribe-form")

除此之外,您还可以在HTML上使用此功能:

<form action"[...]">

您忘记了=与其值之间的action。它应该是这样的:

<form action="[...]">

注意=那里!