【问题标题】:Stop New Tab From Opening阻止新标签打开
【发布时间】:2015-10-18 10:48:22
【问题描述】:

我正在使用 mailchimp 创建一个注册表单,每次按下提交按钮时,都会打开一个新选项卡,确认您订阅了 mailchimp 电子邮件列表。我希望它作为一种后台进程运行,其中根本没有打开新选项卡,但仍提交表单。这是我目前使用 MailChimp 的代码:

div id="mc_embed_signup">
<form action="//standrtech.us11.list-manage.com/subscribe/post?u=c330585c1144a0dd4bfd6d0df&amp;id=b7e663bdf4" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
    <div id="mc_embed_signup_scroll">
        <h2></h2>
    <div class="mc-field-group">
        <label for="mce-EMAIL">Email Address </label>
        <input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL" placeholder="Enter your email">
    </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 signup-->
        <div style="position: absolute; left: -5000px;"><input type="text" name="b_c330585c1144a0dd4bfd6d0df_b7e663bdf4" tabindex="-1" value=""></div>
            <div class="clear"><input type="submit" value="Get Early Access" name="subscribe" id="mc-embedded-subscribe" class="button" onclick="submission();"></div>
    </div>
</form>

【问题讨论】:

  • 使用 jquery-ajaxchimp github.com/scdoshi/jquery-ajaxchimp
  • 删除target="_blank"
  • 可能的解决方案是删除onclick="submission();" ...但是,最好向我们展示与表单相关的javascript代码
  • 感谢您的建议,但这只是改变了页面上的一些 innerHTML,这是我实现的,不会影响链接

标签: javascript html css mailchimp


【解决方案1】:

从您的 form 标记中删除 target="_blank"

【讨论】:

  • 我试过了,但链接只是在同一个窗口中打开。
  • 是的,我想提交表单,但我不想打开确认 mailchimp 注册的新页面
  • 好主意,但现在表单甚至无法发送。它确实阻止了新标签,但这可能是因为表单没有通过。
  • 啊,你不需要表格。您想要一个将通过 ajax 发布的按钮。 w3schools.com/jquery/jquery_ajax_get_post.asp 有点多,但允许你发送数据并控制返回。
【解决方案2】:

我知道我对此有点晚了,但我已经找到了解决方案以供将来参考。

仅适用于“经典”形式

看起来 HTML 代码没有正确复制。在 mailchimp 嵌入表单仪表板中,查找包含表单的外部 div 之后的脚本,这些脚本将验证您的表单。我的嵌入表单在外部 div 之后有两个脚本:

<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script>

<script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);</script>

第二个脚本可能会因您的表单字段而异,但我认为您肯定需要添加 mc-validate.js 来解决此问题。

希望这会有所帮助。

【讨论】:

    【解决方案3】:

    就我而言,这是因为表单验证脚本。我删除了脚本并自己进行了简单的电子邮件输入文本验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-07
      • 2019-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 1970-01-01
      相关资源
      最近更新 更多