Adobe LiveCycle:查找所有复选框的脚本

时间:2018-08-15 16:26:29

标签: javascript adobe livecycle livecycle-designer

我有一个带有收音机选项的表格。根据您选择的内容,将显示一个不同复选框的表。因为只应该选择一个选项集,并且当您将表单导出为XML时,即使您选中了多个选项集并隐藏了该表单,它也会导出 all 数据。他们以后,我想要一个可以通过并取消选中所有复选框的脚本。我在挣扎。

层次结构如下:

- Subform: Causes (a radio set, so you can only select one)
- Subform: Subcauses (the different option sets live here)
   - Subform: Subcause 1
       - Table of checkboxes
   - Subform: Subcause 2
   - etc.

因此,当用户单击“原因”子表单中的单选按钮之一时,脚本需要从“子原因”子表单开始,并遍历其下的所有容器以查找复选框。如果找到一个,则应取消选中它。这就是我现在所拥有的。它已被正确调用,但内部循环未找到复选框。任何帮助,不胜感激!

function traverse(oParentNode) {
      var allChildElements;
      var intNumElements;
      var currentElement;
      var i;
      var j;
            // Get all occurances of the parent element
      intNumOccurances = oParentNode.all.length;
            for (i=0; i < intNumOccurances; i++)      {
           oCurrentParent = oParentNode.all.item(i);
                      // Get all the child nodes of the parent element
           allChildElements = oCurrentParent.nodes;
                      // Total number of elements in the object
           intNumElements = allChildElements.length;
                      // Loop through all the child elements
           for (j=0; j < intNumElements; j++)
           {
                currentElement = allChildElements.item(j);
                                //If it's a field, process
                if (currentElement.className == "field")
                {
                     if (currentElement.isPropertySpecified("ui") && currentElement.ui.nodes.item(0).className == "checkButton")
                     {
                          currentElement.rawValue = 0;
                     }
                }
                //Otherwise recurse
                else
                {
                     traverse(currentElement);
                }
           }
      }
 }

0 个答案:

没有答案