Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

Disable all fields, buttons, etc in Subform

Not applicable
Is there an easy way to disable the contents of a subform?
7 Replies
pguerett
Level 10
Level 10
You can turn the presence of the subform to invisible and all children will be made invisible as well.



You could get all child nodes of the subform and change their access property to readOnly. I have a script function that accepts a node (in your case a subform) and will get all children of that node....then you can do what you want to them.



Post your email address and I will send the sample ...if you want it.
Raghu_Nagireddy
Level 6
Level 6

Will be like this.

subformname.access = "readOnly"; //javaScript

$.access = "readOnly"; //formcalc

update the "subformname" with the name of ur subform which want to make readOnly. Place this on a required event based on ur requirement, both javascript and formcalc sysntaxes are above.

JohnQWestat
Level 2
Level 2

Raghu,

Thank you for your response.  My request was intended to be a response to pguerette's post:

If anyone has this code, that is what I was asking for.

Raghu_Nagireddy
Level 6
Level 6

If need only at "subform" level please check the thread: http://forums.adobe.com/message/4389004#4389004

If need at "form root" level, Please check the below function.Pass "oParentNode" as root of the form.

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 the element is another subform we'll recursively call the function again

                              if (allChildElements.item(j).className == "subform")

                              {

                                        traverse(currentElement);

                                        // If the objects are fields or exclusive groups then we'll encode them

                              } else {

                                        if (currentElement.className == "field" || currentElement.className == "exclGroup")

                                        {

                                                  //Here have the access for both field and value

                                 //your code comes here

                                                  fields += currentElement.name + "\t";

                                                  values += currentElement.rawValue + "\t";

                                          }

                              }

                    }

          }

}          // end traverse function

Hope it may helps.

Not applicable
If the «subform» already has an «access» attribute on its xml template definition, then you can make the subform and all its descendants read-only by setting the subform's «access» attribute to «readOnly», in JavaScript.
Not applicable
can you show me the code around this? I dont think a subform has an access attribute.