0

我的团队想要为托管在我们自己网站上的登录页面设置一个主 Marketo 表单。他们设置了带有隐藏字段的表单并在 Marketo 中添加了说明,我为他们提供了一种根据需要分配活动 ID、资产和重定向 URL 的方法。这通过生成以下代码来工作:

<script src="//app-sj05.marketo.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm_ourFormID"></form>
<script>
        MktoForms2.loadForm("//app-sj05.marketo.com", "ourID", ourFormID, function(form) {
            // Set values in hidden fields to determine campaign and asset to serve
            form.vals({
                "Campaign_Id__c":"assignedCampaignID", 
                 "Campaign_Asset__c":"assignedCampaignAsset"
            });
            // Override redirect URL set in Marketo
            form.onSuccess(function(values, followUpUrl) {
                location.href = "redirectURL";
                // Return false to prevent the submission handler continuing with its own processing
                return false;
            });
        });
</script>

下一步是仅在未包含在引用 URL 中时分配活动 ID。所以我需要某种 if/then 语句来查看隐藏的广告系列 ID 以查看是否有值 - 并且只有在没有值时才分配一个值。无论如何,我都不是 javascript 大师,我不确定 Marketo API 的最佳方法是什么。有人可以帮我解决最后一点 if/else 吗?

4

2 回答 2

0

感谢 Sanford Whiteman 通过 Marketo 支持论坛完成了这项工作:

<script src="//app-sj05.marketo.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm_ourFormID"></form>
<script>
    MktoForms2.loadForm("//app-sj05.marketo.com", "ourID", ourFormID, function(form) {
        // Set values in hidden field to determine asset to serve
        form.vals({ 
            "Campaign_Asset__c":"assignedCampaignAsset"
        });
        // Check to see if referring url set campaign ID, if not set value in hidden field
        if( !form.getValues()['Campaign_Id__c'] ) {
            form.setValues({
                "Campaign_Id__c":"assignedCampaignID"
            })
        }
        // Override redirect URL set in Marketo
        form.onSuccess(function(values, followUpUrl) {
            location.href = "redirectURL";
            // Return false to prevent the submission handler continuing with its own processing
            return false;
         });
    });
</script>
于 2015-11-12T21:30:34.740 回答
0

如果您在没有参数的情况下调用 form.vals() ,它将返回对象中表单的所有值。所以它看起来像这样:

if (!form.vals().Campaign_Id__c){
    form.vals({"Campaign_Id__c": myValue});
}
于 2015-11-12T17:30:40.260 回答