javascript - Marketo 隐藏字段更新

标签 javascript forms marketo

我应该如何更新 Marketo 隐藏字段的值?

我尝试过的

form.setValues({"Results_PDF_URL__c":"assignedCampaignID"});

form.vals({"Results_PDF_URL__c":"assignedCampaignID"});

以上两个选项都不起作用。

所以我检查了 id,如果我使用的是正确的 id,当我尝试获取 id 时,它对于隐藏的 marketo 字段返回空白(什么也没有)。

虽然我可以获取输入文本 Marketo 字段的 ID(例如 FirstName、Comapany..),但我无法获取任何隐藏 Marketo 字段的 ID。

知道我应该设置什么才能让它工作吗?

最佳答案

只要在正确的范围内使用,其中任何一个都应该有效。表单对象不是全局的。

MktoForms2.whenReady( function (form) { 
    form.vals({"Results_PDF_URL__c":"assignedCampaignID"});
});

您首先要确保 MktoForms2 API 可用,以免出现错误。

if( typeof MktoForms2 != "undefined" ) {
    MktoForms2.whenReady( function (form) { 
        form.vals({"Results_PDF_URL__c":"assignedCampaignID"});
    });
}

在 Marketo 中,您可以在管理 > 字段管理 > 导出字段名称下获取字段名称。 (需要 Marketo 管理员访问权限。)这将下载所有字段名称的 CSV。您将需要使用 REST API 列中显示的字段名称。

为了快速检查,我通常只是将所需的字段添加到表单中并检查它们以获取正确的字段 ID。

此外,您还可以使用 .addHiddenFields() 而不是 .vals() 来确保字段 a) 位于表单上 b) 作为隐藏字段以及 c ) 具有您想要传递到 Marketo 的正确值。如果字段已存在,则此函数将检测字段并仅设置值。非常方便。

if( typeof MktoForms2 != "undefined" ) {
    MktoForms2.whenReady( function (form) { 
        form.addHiddenFields({"Results_PDF_URL__c":"assignedCampaignID"});
    });
}

最后,您可能需要添加短暂的延迟,以确保 Marketo 表单库有足够的时间加载,并且当您查找表单时,该表单将在页面上可用。不太可能有人会在页面上的前两秒内提交表单,因此在将字段/值添加到表单之前延迟两秒可能是可以的。

setTimeout( function(){
    if( typeof MktoForms2 != "undefined" ) {
        MktoForms2.whenReady( function (form) { 
            form.addHiddenFields({"Results_PDF_URL__c":"assignedCampaignID"});
        });
    }
}, 2000 ); // two-second delay

资源:

  1. Marketo forms API Reference
  2. Marketo forms API Examples

关于javascript - Marketo 隐藏字段更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40735236/

相关文章:

javascript - Jquery each 和 Selector 的行为不同

javascript - 使用 javascript 捕获表单中的信息

Python 请求 + Marketo REST API

reactjs - 将 Marketo 表单添加到 Gatsby/JSX

javascript - 找到面积最大的元素(主要内容区域)?

javascript - Sprite 图像未出现在 matter.js 上

javascript - Video-js自定义皮肤

css - 提交表单状态阻止

javascript - php post动态重定向并防止表单重新提交