2015-10-06 111 views
1

这是我的第一个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( 'Test_Comment输入')[0] .value的= resultData; to document.querySelectorAll('。Test_Comment textarea')[0] .value = resultData;

问题表单在这里 - http://go.pardot.com/l/49432/2015-05-19/b5j5r。我希望任何Pardot In Scope复选框字段的标签(不是值)都映射到测试注释字段(当前未隐藏),作为用分号分隔的数组/字符串。

我打电话的功能,这样一来......

<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()"> 

如果作为框是(UN)检查可以这样做,那将是巨大的,但是的onsubmit将被罚款以及。事实上,我没有得到任何东西。

我没有访问任何名称或样式的复选框字段,所以我试图通过父p的类(Pardot_In_Scope)来定位它们。从HTML的角度来看,我可以做的其他事情也不多,因为这个表单是通过Pardot生成的,并且他们没有大量的访问权限。

这整个事情的目的是在Pardot表单的后端通过网络到主角的形式推送值。我知道以分号分隔的数组将正确映射到另一端。我无法填补我提供的代码和为什么它不适合我的代码之间的差距。

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

回答

0

看起来我是个白痴。

onsubmit存在拼写错误。我换了m和b。

我也将它从onsubmit =“copyProductInterest()”更改为onsubmit =“return copyProductInterest()”,它现在就像一个魅力。

0

您没有使用.
你也有一个<textarea>元素,但反正你的目标输入...... 错误

修复您的代码:

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

Hi Roko, 感谢您的反馈。我编辑了代码,但仍然没有收到任何关于文本注释的内容。任何其他想法? Nick – nickfortunatus