1

我正在使用 LiveCycle Designer 构建一个动态表单,该表单能够添加和删除嵌套表的行并计算每行的总数。计算使用 FormCalc 并利用该[*]函数来处理行的所有迭代。(例如,...someThing.Row1[*]代替...someThing.Row[0],...someThing.Row[1]等)

这非常有效,但我还想使用 Javascript 来更改按钮 mouseUp 上某些文本字段单元格的背景填充。我可以让它针对特定的单元格工作,但我不确定在 Javascript 中采取哪些步骤来解决元素的所有动态迭代。

例如,此 JavaScript 有效,但仅针对单个单元格:

MainForm.roomTableSubform.roomTable.Row1.Table1.Row1.billWidth.fillColor = "0,0,0";

从逻辑上讲,(据我了解)如果使用 FormCalc 来定位重复的行,代码将只是以下效果:

MainForm.roomTableSubform.roomTable.Row1[*].Table1.Row1[*].billWidth.fillColor = "0,0,0";

这显然不适用于 Javascript。我已经阅读了我能找到的内容resolveNode,这似乎是 JavaScript 解决方案。我只是不确定如何在上下文中使用它来定位未公开数量的动态创建的元素。

我已将整个表达式包含在 resolveNode 中,以 开头,xfa.resolveNode("...在 resolveNode ( resolveNode("Row1[*]")) 中使用星号,将其固定在 Row 所在的位置 ( Table1.resolveNode("Row1[*]").blah) 以及我能想到的所有其他任意组合,但无济于事。

任何关于我哪里出错的见解将不胜感激。提前致谢。

4

1 回答 1

1

xfa.resolveNode()返回一个节点。您需要使用xfa.resolveNodes()SOM 表达式来返回节点集合。您可以使用循环遍历节点。

var nodes = Table1.resolveNodes("Row1[*]");
var len = nodes.length;
for(var i = 0; i < len; i++){
    nodes.item(i).fillColor = "255,200,200";
}
于 2014-03-12T11:37:53.707 回答