2017-05-24 65 views
0

我遇到了我在Google跟踪代码管理器中使用的getElementsByClassName函数问题。 我将需要捕获我的客户的窗体中的输入字段值,我隔离类名称,并在我的自定义JS中使用它,但我只得到未定义回来。 我正在使用的JS是下面的,我也创建了一个gtm.formsubmit事件,但我认为事件在它有时间听用户输入之前触发,它甚至有可能吗?getElementsByClassName - 未定义返回

function() { var inputField = document.getElementsByClassName("wpcf7-form"); return inputField.value || ""; }

谢谢!

回答

0

即使只有一个类wpcf7-form的元素,调用getElementsByClassName将返回一个元素数组(在这种情况下是一个元素)。由于一个数组没有“value”属性,你会得到一个“undefined”。

如果resonably肯定有与类只有一个元素,你可以在索引0做

...  
var inputField = document.getElementsByClassName("wpcf7-form"); 
return inputField[0].value || ""; 
... 

,因为一个单一的元素总是会在这种情况下,它会更容易使用DOM类型在Google跟踪代码管理器中添加变量,并将选择方法设置为“CSS选择器”。这将返回您的类的第一个元素(或未定义,如果不存在)。

+0

谢谢艾克, –