情景:
基于Ajax的联系我们表单在www.example.com/contact-us
成功提交表单:页面保持不变,显示谢谢文本。 (在html方面,style = display:none的属性从div中删除,它显示了感谢页面。
<div id="123" style="display:none"> Thank you </div>
方法1 :我尝试过表单提交触发器,但每次用户点击“提交”按钮时都会触发。此外,它会触发无效表单提交尝试的代码
方法2:我在GTM中选择了表单验证。但是,gtm.FormSubmit
事件未被触发。所以代码永远不会被触发。
方法3:我创建了一个DOM元素变量,在初始页面加载时,它给出了div id="123"
的 style 属性的值。
我的期望是表单提交,我将获得div id 123的Style属性的更新值。但是,该值永远不会更新。
如果在单击提交按钮后style="display:none"
不存在时,如何启用触发器?
答案 0 :(得分:0)
执行此操作的最佳方法是,在表单提交成功后,您可以手动并显式地将事件推送到GTM dataLayer。您通常会在Ajax回调中执行此操作,如下所示
Sub Macro1()
Sheets("model").Select
Dim i As Double
Dim p As Double
For i = 1 To 10
p = -0.1565 + ((i - 1) * 0.0015)
Sheets("model").Range("J15").Value = p
SolverOk SetCell:="$J$12", MaxMinVal:=2, ValueOf:=0, ByChange:="$B$4:$F$4", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$J$12", MaxMinVal:=2, ValueOf:=0, ByChange:="$B$4:$F$4", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve (True)
Sheets("rec").Select
Range("B1:H1").Select
Selection.Copy
Sheets("rec").Range(Cells((i + 4), 2), Cells((i + 4), 8)).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C5").Select
Next i
End Sub
然后,在GTM中,您将创建自定义事件类型的触发器,并输入事件名称(form_submitted)。只要将此事件推送到dataLayer,就会触发标记。