我正在尝试将输入值从表单推送到GTM数据层。我已经阅读了一堆不同的指南,并且仍然对必要的步骤感到困惑。目前我已经设置了以下内容:
<script>
/* event listener */
document.getElementsByName("UnitPrice")[0].addEventListener('change', doThing);
/* function */
function doThing(){
var donateAmount = this.value;
console.log(donateAmount);
window.dataLayer.push({
'event' : 'donation',
'donationAmount' : donateAmount
});
}
</script>
我的问题是双重的。首先,每当在该表单项上更新输入时,我不应该看到信息被推送到数据层(使用GTM调试器)吗?其次,就数据到数据层而言,我在这里错过了一步吗?
编辑:
下面是输入字段的html
<input name="UnitPrice" type="hidden" id="UnitPrice" value="" />
答案 0 :(得分:0)
&#39;变更&#39;是一个非常棘手的事件。通常,在更改文本值并等待输入失去焦点后不会触发此事件。 https://developer.mozilla.org/en-US/docs/Web/Events/change
我认为您不需要为每次输入更改而推送,但仅限于某些&#34;提交&#34;相互作用。您可以使用用户定义的自定义Javascript类型变量将此值公开给GTM:
function () {
return document.getElementsByName("UnitPrice")[0].value;
}
然后通过引用变量来访问标记中的值。