Javascript 单击按钮可执行两个操作:文件下载和;报名

Javascript 单击按钮可执行两个操作:文件下载和;报名,javascript,html,css,forms,Javascript,Html,Css,Forms,我试图使它在每次单击subscribe按钮时都执行注册(如代码演示中所示),但也下载一个文件 我尝试添加onclick=“window.location.href=”#“”,但什么也没发生。我考虑过使用javascript,但我认为订阅不能以这种方式工作,但我相信文件可以以这种方式打开 有没有一个简单的方法来满足这两个结果?其他帖子不包括电子邮件注册,这是造成问题的原因。非常感谢您的帮助;) 首先,让我先说,使用一个按钮执行两个完全不同的操作可能不是一个好主意。但是,你知道你的业务更好,所以你

我试图使它在每次单击subscribe按钮时都执行注册(如代码演示中所示),但也下载一个文件

我尝试添加onclick=“window.location.href=”#“”,但什么也没发生。我考虑过使用javascript,但我认为订阅不能以这种方式工作,但我相信文件可以以这种方式打开

有没有一个简单的方法来满足这两个结果?其他帖子不包括电子邮件注册,这是造成问题的原因。非常感谢您的帮助;)



首先,让我先说,使用一个按钮执行两个完全不同的操作可能不是一个好主意。但是,你知道你的业务更好,所以你可以考虑,但是考虑这个建议。如果你仍然想这样做,你有几个选项,但是它们都涉及JavaScript。 在使用这些选项之前,我建议将
target=“\u 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 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。< /P> 在使用这些选项之前,我建议将
target=“\u 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 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>

您可以使用事件绑定并执行两个操作。将post操作更改为下载操作(或相反),然后: 使用jQuery:

$('#newsletter-button').click(function (e) {
    e.preventDefault();

    //although it will not complete properly, ajax call should be ok to signup url
    $.ajax({
        url: 'URL-FROM-SIGN-UP',
        complete: function () {
            // here we submit the form, get(0) needs because submit() from jQuery does not submit a form
            $('#mc-embedded-subscribe-form').get(0).submit();
        }
    });
});

您可以使用事件绑定并执行两个操作。将post操作更改为下载操作(或相反),然后: 使用jQuery:

$('#newsletter-button').click(function (e) {
    e.preventDefault();

    //although it will not complete properly, ajax call should be ok to signup url
    $.ajax({
        url: 'URL-FROM-SIGN-UP',
        complete: function () {
            // here we submit the form, get(0) needs because submit() from jQuery does not submit a form
            $('#mc-embedded-subscribe-form').get(0).submit();
        }
    });
});

您使用的编程语言是什么?似乎不是客户端的问题,而是服务器端的问题。您可以在服务器端同时使用这两种语言。我只使用html、css和javascript,它们都是前端。我无法控制注册后端,因为它是通过邮件完成的。您使用的编程语言是什么?似乎不是客户端的问题,但而是服务器端。您可以在服务器端同时执行这两项操作。我只使用html、css和javascript,它们都是前端。我无法控制注册后端,因为它是通过邮件完成的。谢谢!有没有办法使用target=“\u blank”来完成"? 我想同时执行两个操作的原因是为了让用户订阅时事通讯以访问文件。为了清楚起见,您的解决方案只有在没有target=“\u blank”的情况下才能工作。您可以使用`target=\u blank'“,但您最终将创建两个弹出窗口,这会让用户感到困惑,并且可能会被浏览器阻止。哇,谢谢!使用target=“\u blank”有什么方法可以做到这一点吗?我想同时执行两个操作的原因是为了让用户订阅新闻稿以访问文件。为了清楚起见,您的解决方案只有在没有target=“\u blank”的情况下才能工作。您可以使用`target=\u blank',但最终会创建两个弹出窗口,这会让用户感到困惑,并且可能会被浏览器阻止。