【问题标题】:Copy Checkbox Labels to a Hidden text field将复选框标签复制到隐藏的文本字段
【发布时间】:2015-10-08 07:20:02
【问题描述】:

这是我的第一个 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 input')[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 复选框字段的标签(不是值)作为由分号分隔的数组/字符串映射到 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 表单后端的网络到潜在客户表单来推送值。我知道用分号分隔的数组将正确映射到另一端。我只是无法填补我提供的代码和为什么它不适合我之间的空白。

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

【问题讨论】:

    标签: javascript html forms checkbox


    【解决方案1】:

    你没有使用.(CLASS!)
    你也有一个 &lt;textarea&gt; 元素,但无论如何你的目标是输入...... 错误

    将您的代码修复为:

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

    【讨论】:

    • 您好 Roko,感谢您的反馈。我已经编辑了代码,但仍然没有通过文本注释得到任何内容。还有其他想法吗?尼克
    【解决方案2】:

    看来我是个白痴。

    onsubmit 中有一个错字。我交换了 m 和 b。

    我还将它从 onsubmit="copyProductInterest()" 更改为 onsubmit="return copyProductInterest()" 现在它就像一个魅力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      • 2012-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多