通过javascript添加onsubmit到表单

时间:2012-12-12 22:17:08

标签: javascript javascript-events google-analytics chargify

您如何仅通过Javascript将OnSubmit属性插入表单?

我是javascript的新手,所以如果你能够提供详细的示例代码,那将是最有帮助的!

以下是这种情况:我正在通过Chargify(付款平台)使用托管注册页面来处理我的应用的信用卡,然后将用户发回给我自己的谢谢/确认页面。

由于更改了域名(我的域名> Chargify.com - >我的域名),因此通过谷歌分析跟踪整个渠道非常难以捉摸,因为信用卡页面由Chargify在其自己的域上托管。

我越来越近了:我已经能够进行跨域跟踪工作(chargify.com页面会在Google Analytics中登录),并且可以通过添加从我的域名链接到chargify以下onclick属性到我的注册链接:

onclick="_gaq.push(['_link', 'http://my-domain.chargify.com/subscriptions/new']); return false;"

但是,我在回来的路上不能做同样的事情(Chargify - >确认页面)因为我无法访问Chargify托管的付款页面代码,并且因为用户通过表单被带到我的确认页面提交,而不是正常的链接。

部分解决方案(需要您的帮助才能完成此操作): Chargify允许托管页面有多个选项,其中一个选项是添加自定义的javascript,它会在</body>标记的<script>标记之前插入。

我在Google Analytics文档中找到了一些关于如何链接网页的资源,并将以下内容添加到Chargify表单标记中可能有效:onsubmit="_gaq.push(['_linkByPost', this]);" (来源:https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiDomainDirectory#_gat.GA_Tracker_._linkByPost

表单标记目前没有onsubmit属性,就是这样:<form action="/my_product/subscriptions" class="new_submission" id="hosted_payment_form" method="post">

有没有办法使用javascript简单地将此属性附加到表单标记?如果您能够提供我应该在{{1}中插入的代码的详细示例标签,非常感谢。谢谢!

1 个答案:

答案 0 :(得分:7)

window.onload = function() {
    var form = document.getElementById('hosted_payment_form');
    form.onsubmit = function() {
        _gaq.push(['_linkByPost', this]);
    }
}

我相信上面的例子类似于你所需要的。我们使用document.getElementById来获取对表单的引用。然后将onsubmit属性设置为您在提交表单之前要执行的代码。如果在呈现页面之前执行此JavaScript以确保构建表单,请记住将其放在窗口onload事件中。