繁体   English   中英

相当于FormCalc的[*]的Adobe LiveCycle Designer JavaScript

[英]Adobe LiveCycle Designer JavaScript equivalent to FormCalc's [*]

我正在使用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 )和我能想到的所有其他任意组合都无济于事。

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

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";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM