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()1 つのノードを返します。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 に答える