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

Is there an easy way to disable the contents of a subform?
3 Replies


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.


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.


Level 2


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.


Level 6

If need only at "subform" level please check the thread:

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")



                                        // 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 += + "\t";

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





}          // end traverse function

Hope it may helps.

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.
can you show me the code around this? I dont think a subform has an access attribute.