这是我的第一个SO问题,如果我搞砸了,我很抱歉。我到处都找遍了,就是找不到我要找的东西。
我有一些问题得到一个脚本提供给我做我想做的事情。从本质上讲,我希望所有具有特定类父类的选中复选框的标签都被创建为以分号分隔的字符串,并添加到隐藏字段中。
这是我正在使用的函数:
function copyProductInterest() {
var resultData = '';
var listLabels = document.querySelectorAll('.Pardot_In_Scope .inline');
var listInputs = document.querySelectorAll('.Pardot_In_Scope input');
for( var i=0; i<listInputs.length; i++){
label = listLabels[i];
checkbox = listInputs[i];
if( checkbox.checked ){
resultData += label.innerHTML + ';';
}
}
document.querySelectorAll('.Test_Comment textarea')[0].value = resultData;
return true;
}
编辑:我已经更新了文档。querySelectorAll("Test_Comment输入")[0]。value = resultData;document.querySelectorAll('。Test_Comment textarea)[0]。
所讨论的表单在这里- http://go.pardot.com/l/49432/2015-05-19/b5j5r。我希望任何Pardot In Scope复选框字段的标签(不是值)被映射到Test Comment字段(当前未隐藏)作为由分号分隔的数组/字符串。
我这样调用函数…
<form accept-charset="UTF-8" method="post" action="http://go.pardot.com/l/49432/2015-05-19/b5j5r" class="form" id="pardot-form" onsumbit="copyProductInterest()">
如果这可以在复选框被选中时完成,那就太好了,但是onsubmit也可以。事实上,我什么也没得到。
我无法访问复选框字段的名称或样式,所以我试图通过父p的类(Pardot_In_Scope)来定位它们。从HTML的角度来看,我也做不了什么,因为这个表单是通过Pardot生成的,他们给你的访问权限不多。
整个过程的目的是通过Pardot表单后端的web-to-lead表单推送这些值。我知道用分号分隔的数组在另一端可以正确地映射。我只是不能填补我提供的代码和为什么它不适合我之间的空白。
任何帮助都将非常感激!此外,Pardot不允许服务器端脚本,这就是为什么我在看JavaScript。
您没有使用.
(class !)
你也有一个<textarea>
元素,但无论如何你的目标是一个输入…错
修改你的代码:
document.querySelectorAll('.Test_Comment textarea')[0].value = resultData;
看起来我是个白痴。
onsubmit中有一个错别字。我交换了m和b
我还将它从onsubmit="copyProductInterest()"更改为onsubmit="return copyProductInterest()",现在它像一个魅力。