Expand my Community achievements bar.

Guidelines for the Responsible Use of Generative AI in the Experience Cloud Community.
SOLVED

xfa.resolveNode("xfa..someNode").rawValue returns null

Avatar

Level 2

Hi

if have like this structure, where there is only one instance each:

ParentSubform

     ChildSubform

          MyTextfield.rawValue = 99999

now, i try to get that value in ParentSubform::initialize event:

var value = xfa.resolveNode("xfa..ChildSubform").MyTextfield.rawValue;

console.println("vlaue: " + value); // null

console.println("value: " + ChildSubform.MyTextfield.rawValue); // 99999

did I misunderstand the resolveNode function?

Thanks

1 Accepted Solution

Avatar

Correct answer by
Level 10

The XFA object model is divided into a number of parts, the form is under xfa.form, the template under xfa.template, etc.  To use the descendent operator, the two dots ".." you have to say which model to look in.

Try

xfa.resolveNode("xfa.form..ChildSubform").MyTextfield.rawValue

or

using the shortcut

xfa.resolveNode("$form..ChildSubform").MyTextfield.rawValue

View solution in original post

3 Replies

Avatar

Level 10

I think there is no form object in yout form named „xfa“, isn't it? I this way the result „null“ is correct.

The correct script should propably be:

this.resolveNode("ChildSubform.MyTextfield").rawValue

Here's a very good explaination of how the resolveNode() and resolveNodes() methods work: resolveNode vs. resolveNodes

Avatar

Correct answer by
Level 10

The XFA object model is divided into a number of parts, the form is under xfa.form, the template under xfa.template, etc.  To use the descendent operator, the two dots ".." you have to say which model to look in.

Try

xfa.resolveNode("xfa.form..ChildSubform").MyTextfield.rawValue

or

using the shortcut

xfa.resolveNode("$form..ChildSubform").MyTextfield.rawValue

Avatar

Level 2

thanks for your answer, but xfa is the topmost node in xml based forms by default