首页 > 解决方案 > 使用 Javascript 设置 HubSpot 隐藏表单字段的值

问题描述

我在网站的头部有一小段 Javascript 代码:

<!-- Unique form ID -->
<script>
   document.querySelector('input[name=form_submission_id]').value = new Date();
</script>

我的目标是获取一个名为“表单提交 id”的隐藏表单字段来填充日期戳,但我不断收到错误消息 - 无法将属性“值”设置为 null

如果我进入检查器工具并取消隐藏隐藏的表单字段,则上面的代码有效,如果它被隐藏,我会收到错误消息。

这是现场表格的链接:https ://easytrimreveals.com/samples/

我假设它是脚本已经触发后加载的表单,但如果是这种情况,我不确定如何解决。

我尝试为脚本触发创建超时延迟,但这似乎也不起作用..

<script>

  var formId = function() {
      document.querySelector('input[name=form_submission_id]').value = new Date();
  }
  document.onload = function() {
  setTimeout(formId, 3000);
}

</script>

标签: javascriptforms

解决方案


最后得到朋友的帮助,它已经解决了!

感谢你的帮助!

<script>
window.addEventListener('message', event => {
   if(event.data.type === 'hsFormCallback' && event.data.eventName === 'onFormReady') {
    document.getElementById("hs-form-iframe-0").contentDocument.querySelector('input[name="form_submission_id"]').value = new Date();
   }
});
</script>

推荐阅读