Javascript 填充隐藏字段不工作

Javascript 填充隐藏字段不工作,javascript,html,Javascript,Html,以下问题,我希望UTM参数填写在一个隐藏的字段中。但是不起作用。我不熟悉javascript,但所有其他字段都工作,只有utm会出问题。这是带有参数的URL myurl.com?utm_source=facebook&utm_medium=twitter&utm_campaign=google //解析URL 函数getParameterByName(名称){ name=name.replace(/[\[]/,“\\[”)。replace(/[\]]/,“\\]”); var regex=ne

以下问题,我希望UTM参数填写在一个隐藏的字段中。但是不起作用。我不熟悉javascript,但所有其他字段都工作,只有utm会出问题。这是带有参数的URL

myurl.com?utm_source=facebook&utm_medium=twitter&utm_campaign=google

//解析URL
函数getParameterByName(名称){
name=name.replace(/[\[]/,“\\[”)。replace(/[\]]/,“\\]”);
var regex=new RegExp(“[\\?&]”+name+“=([^&\]*)”,
results=regex.exec(location.search);
返回结果===null?”:decodeURIComponent(结果[1]。替换(/\+/g,”);
}
//给出URL参数变量名
var活动=getParameterByName('utm_活动');
//将变量名放入表单中的隐藏字段中。
document.getElementsByName(“ck\u field\u utm\u活动”).value=campaign

文档。getElementsByTagName
返回一个数组。(按标记名列出的元素)

所以当你写作时:


document.getElementsByName(“ck\u field\u utm\u活动”).value=campaign

基本上是将
.value
属性分配给函数返回的数组。而是使用
.querySelector
(返回单个元素或null)或访问getElementsByName返回的数组中的第一项,并为其分配
.value

使用querySelector:

document.querySelector("[name='ck_field_utm_campaign']").value = campaign;
访问第一项:

var input = document.getElementsByName("ck_field_utm_campaign");
// input now contains an ARRAY of elements that match that name
// but if you're sure that only one input has that name you can easily access
// that input
input = input[0];
input.value = campaign;

值得一提的是,
input.value
不同,如果不小心,可能会引起很多头痛。