【问题标题】:write variable to input field将变量写入输入字段
【发布时间】:2017-06-11 22:39:02
【问题描述】:

我正在尝试将输入字段的值设置为来自 url 的 utm_parameter 的值

我在页面头部有这段代码来提取参数的值并设置字段的值

   <!-- Get UTM Parameters Code -->
<script>
// Parse the URL
function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
// Give the URL parameters variable names
var source = getParameterByName('utm_source');
var medium = getParameterByName('utm_medium');
var campaign = getParameterByName('utm_campaign');

// Put the variable names into the hidden fields in the form.
document.getElementsByName("utm_source").value = source;
document.getElementsByName("utm_medium").value = medium;
document.getElementsByName("utm_campaign").value = campaign;
</script>
<!-- End Get UTM Parameters Code -->

这是页面正文中的代码。

<form>
<input type="text" name="utm_source" id="utm_source" value="">
<input type="text" name="utm_medium" id="utm_medium" value="">
<input type="text" name="utm_campaign" id="utm_campaign" value="">
</form>

参数已成功提取,但未设置为输入字段的值。

代码有问题吗?

【问题讨论】:

  • 我完全不推荐使用document.write();。如果您想测试/调试,请使用console.log(); 并打开浏览器控制台。也许这篇文章会帮助你理解stackoverflow.com/questions/20273805/… 还有getElementsByName() 返回文档中所有元素的集合,具有指定的名称 - NodeList 对象。
  • document.write() 不是你想的那样。
  • 我放了document.write()只是为了看看参数是否提取成功

标签: javascript variables input-field


【解决方案1】:

尝试关注

document.getElementsByName("utm_source")[0].value = source;
document.getElementsByName("utm_medium")[0].value = medium;
document.getElementsByName("utm_campaign")[0].value = campaign;

document.getElementsByName() 返回一个节点列表对象,因此您必须像数组一样对其进行处理。 Reference

【讨论】:

  • 要解释您所做的更改吗?有些人想了解为什么当前的尝试不起作用以及为什么 [0] 允许它起作用。
  • 试过这个,但它不起作用。还有什么问题吗?
  • 确保您的脚本位于页面底部的
【解决方案2】:

好的,现在可以了。

我使用了代码

document.getElementsByName("utm_source")[0].value = source;
document.getElementsByName("utm_medium")[0].value = medium;
document.getElementsByName("utm_campaign")[0].value = campaign; 

并将该代码从标题移到关闭之前的右侧。

现在 utm 参数的值显示出来了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 2015-01-11
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多