javascript - 单击按钮执行 2 个操作 : file download & signup

标签 javascript html css forms

我正在努力做到无论何时单击订阅按钮,它都会执行注册(如演示的代码中所示),同时还会下载一个文件。

我尝试添加 onclick="window.location.href='#'",但没有任何反应。我考虑过使用 javascript,但我不认为订阅可以这样工作,但我有信心文件可以这样打开。

难道没有一种简单的方法可以同时满足这两种结果吗?其他帖子不包括导致问题的电子邮件注册。非常感谢一些帮助;)

<form action="http://someuniquemailchimpurl.us16.list-manage.com/subscribe/post?u=d6f1&amp;id=9ebc2randomlink" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>

    <input type="email" placeholder="email" value="" name="EMAIL" class="required email" id="mce-EMAIL">

<div id="mce-responses">

        <div class="response" id="mce-error-response" style="display:none"></div>

        <div class="response" id="mce-success-response" style="display:none"></div>

    </div>

    <input type="submit" value="Subscribe" name="subscribe" id="newsletter-button">

</form>

最佳答案

首先,让我先说使用一个按钮执行两个完全不同的操作可能不是一个好主意。但是,您更了解您的业务,所以您决定,但请考虑此建议。如果您仍想继续使用它,您有多种选择,但它们都涉及 JavaScript。

在我们使用这些选项之前,我建议从您的 form 标签中删除 target="_blank"。我在下面的示例中将其删除。

一种选择是像您尝试的那样使用 onclick 事件。您这样做的方式将行不通,因为它将重新加载页面并且不会发生订阅事件。您需要在弹出窗口中下载文件。这是一个例子:

<form action="http://someuniquemailchimpurl.us16.list-manage.com/subscribe/post?u=d6f1&amp;id=9ebc2randomlink" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" novalidate>
<input type="submit" onclick="downloadFile()" value="Subscribe" name="subscribe" id="newsletter-button">
</form>
<script type="text/javascript">
    function downloadFile() {
        var dw = window.open();
        dw.location.href = "the_file_url";
    }
</script>

另一种选择是在使用 form 标记上的 onsubmit 事件提交表单时下载文件。这是一个例子:

<form action="http://someuniquemailchimpurl.us16.list-manage.com/subscribe/post?u=d6f1&amp;id=9ebc2randomlink" method="post" onsubmit="downloadFile()" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" novalidate>
<input type="submit" value="Subscribe" name="subscribe" id="newsletter-button">
</form>
<script type="text/javascript">
    function downloadFile() {
        var dw = window.open();
        dw.location.href = "the_file_url";
    }
</script>

关于javascript - 单击按钮执行 2 个操作 : file download & signup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46917521/

相关文章:

javascript - 有什么方法可以从通用的 HTML 片段创建文档片段吗?

javascript - document.location 尝试下载文件时修改 WebApi 路由

javascript - 如何从 ng-repeat 中删除这个 li 元素?

html - 覆盖特定宽度的媒体查询 - CSS

html - 相对于静态背景图像位置的 CSS 位置文本

html - CSS3 过渡搞乱了 webkit 中的字体?

javascript - Flot 折线图渐变填充

java - 将 stringWidth 与 html 字符串一起使用

html - 某些 html 标签未显示在任何 iPad safari 浏览器(safari 或 Chrome 应用程序)中

需要 CSS Column Divs 帮助