我有一个带有收音机选项的表格。根据您选择的内容,将显示一个不同复选框的表。因为只应该选择一个选项集,并且当您将表单导出为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);
}
}
}
}