Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mailchimp一个列表的多个订阅表单_Javascript_Html_Forms_Mailchimp - Fatal编程技术网

Javascript Mailchimp一个列表的多个订阅表单

Javascript Mailchimp一个列表的多个订阅表单,javascript,html,forms,mailchimp,Javascript,Html,Forms,Mailchimp,我在一个指向一个列表的html页面中嵌入了三个不同的定制mailchimp表单(每个表单有两个相似的字段和一个不同的隐藏字段) 除了一件事之外,一切都正常。响应消息(成功或错误)仅在第一个表单的div#mce response中显示在同一页面中。在另外两个页面中,响应被加载并显示在另一个空白页面中。我希望在同一页中显示所有三种表单的响应。 我不是Java脚本用户,但经过一点研究,我发现这涉及到外部脚本: 有没有通过mailchimp设置的解决方案,或者我们必须使用JavaScript文件 我知

我在一个指向一个列表的html页面中嵌入了三个不同的定制mailchimp表单(每个表单有两个相似的字段和一个不同的隐藏字段)

除了一件事之外,一切都正常。响应消息(成功或错误)仅在第一个表单的div
#mce response
中显示在同一页面中。在另外两个页面中,响应被加载并显示在另一个空白页面中。我希望在同一页中显示所有三种表单的响应。 我不是Java脚本用户,但经过一点研究,我发现这涉及到外部脚本:

有没有通过mailchimp设置的解决方案,或者我们必须使用JavaScript文件

我知道这个脚本只对第一种形式有效。 你知道怎么做吗?
谢谢

显然使用iframes很有效

请参阅文章/视频

文章中的解释文本: 不要将注册表单嵌入代码页面中的代码粘贴到站点中,而是将其粘贴到文本文档中(使用记事本(PC)或文本编辑(Mac)),并称之为“Signup Form.html”或类似的东西。您可能希望将表单包装在div中以进行样式设置,并添加一些内联样式。因此,HTML文档将如下所示:

<style type="text/css">
<!--
lots of CSS to make your form look pretty
//-->
</style>

<div id="sign-up">
at least 50 lines of code copied from MailChimp goes here
</div>

这里至少有50行从MailChimp复制的代码
然后将这个HTML文档(“signup form.HTML”或您所称的任何东西)上传到服务器上的某个地方

然后,为了在页面上嵌入代码(根据需要多次),您可以使用如下iframe调用HTML:

<iframe src="http://your-site.com/mailchimp-form.html" frameborder="0" width="654" height="200">
<a href="http://link-to-form-on-mailchimp-site" target="_blank">Anchor text saying "click here to sign up" or something like that for people whose browsers can't read iframes</a>
</iframe>

使用Ajax黑猩猩。这将(1)防止将订阅者重定向到页面之外,(2)允许多个表单


如果将每个mailchimp表单包装在一个…,然后在页面上运行此脚本,它将重新分配非焦点表单的所有ID,并重新绑定提交事件。有点不太对劲,但如果你陷入困境,它会起作用

// only execute if confirmed more than 1 mailchimp form on this page
$(document).ready(function() {

    if ( $('.mc-form-instance').length > 1 ) {

        $('.mc-field-group > .required').on('focus', function() {
            var thisField = $(this);

            // backup all mc-form ids on this page
            $('.mc-form-instance [id]').each(function() {
                var currentID = $(this).attr('id');
                if ( currentID.indexOf('-bak') == -1 ) {
                    $(this).attr('id', currentID + '-bak');
                }
            });
            // change the current form ids back to original state
            var thisForm = thisField.closest('.mc-form-instance');
            thisForm.find('[id]').each(function() {
                var currentID = $(this).attr('id');
                if ( currentID.indexOf('-bak') != -1 ) {
                    $(this).attr('id', currentID.replace('-bak', ''));
                }
            });
        });

        // re-bind
        $.getScript('//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js');
    }
});

您是否找到了解决方案?欢迎提供解决方案的链接,但请确保您的答案在没有它的情况下是有用的:这样您的其他用户就会知道它是什么以及为什么存在,然后您将链接到,以防目标页面不可用。