【发布时间】:2020-03-29 11:52:04
【问题描述】:
有没有人专门使用 FormAssembly 将 URL 变量传递到表单字段(理想情况下是隐藏类型)?该 URL 包含我希望在提交表单时包含的营销数据。我已经能够使用下面的代码解析 URL 参数值并将它们存储在会话存储中。例如,我的 URL 可能是“www.domain.com/?utm_source=sourceval&utm_medium=mediumval”。在检查页面时,我看到“utm_source:sourceval”的 [key:value]。我遇到问题的地方是获取该键:值并填充表单字段值。有一个类似的(ish)主题How to put the variable field names into the hidden fields on a FormAssembly form,但我不太明白。我是相当新的,所以不仅对提议的脚本有任何帮助,而且将它们放在哪里(在网站上,在标题中......或......在 HTML 表单中......)都是有帮助的。我一直在尝试解决这个问题。
<script>
var queryForm = function(settings){
var reset = settings && settings.reset ? settings.reset : false;
var self = window.location.toString();
var querystring = self.split("?");
if (querystring.length > 1) {
var pairs = querystring[1].split("&");
for (i in pairs) {
var keyval = pairs[i].split("=");
if (reset || sessionStorage.getItem(keyval[0]) === null) {
sessionStorage.setItem(keyval[0], keyval[1]);
}
}
}
var hiddenFields = document.querySelectorAll("input[type=hidden]");
for (var i=0; i<hiddenFields.length; i++) {
var param = sessionStorage.getItem(hiddenFields[i].name);
if (param) document.getElementById(hiddenFields[i].name).value = param;
}
}
queryForm();
</script>
【问题讨论】:
-
还可以查看此线程 link 以获得更多见解。
-
你有没有想过这个问题?我正在尝试做同样的事情。
-
是的,我找到了一种方法来完成这项工作。我在下面给出了答案。
标签: javascript forms url