将复选框标签复制到隐藏文本字段

时间:2015-10-06 04:57:54

标签: javascript html forms checkbox

这是我的第一个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;
        }

编辑:我已经更新了document.querySelectorAll(&#39; Test_Comment输入&#39;)[0] .value = resultData; to document.querySelectorAll(&#39; .Test_Comment textarea&#39;)[0] .value = resultData;

有问题的表格在这里 - 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()">

如果可以在(未)检查框中完成此操作,那将是很好的,但是提交也可以。事实上,我没有得到任何东西。

我无法访问复选框字段的名称或样式,因此我尝试通过父p的类(Pardot_In_Scope)来定位它们。从HTML的角度来看,我无能为力,因为这个表单是通过Pardot生成的,并且他们没有给你很多访问权。

这一切的目的是通过Pardot表单后端的Web-to-lead表单推送值。我知道用分号分隔的数组将在另一端正确映射。我无法填补我提供的代码与为何不适合我的代码之间的差距。

任何帮助将不胜感激!此外,Pardot不允许使用服务器端脚本,这就是我查看JavaScript的原因。

2 个答案:

答案 0 :(得分:0)

您没有使用.(CLASS!)
你还有一个<textarea>元素,但无论如何你都是针对输入... 错误

修复您的代码:

document.querySelectorAll('.Test_Comment textarea')[0].value = resultData;

答案 1 :(得分:0)

看起来我是个白痴。

在提交中有一个拼写错误。我交换了m和b。

我也从onsubmit =&#34; copyProductInterest()&#34;更改了它to onsubmit =&#34; return copyProductInterest()&#34;它现在就像一个魅力。