Here's a recursive function that puts the names of all subforms into the field called TextField1. To get all subforms on the form, call it using getSubNames(xfa.form.nodes). Hope this helps.<br /><br />Jared Langdon<br />http://www.jlangdon.ca<br /><br />function getSubNames(oNodeList) {<br /> var nNumberOfNodes = oNodeList.length;<br /> for (var i=0; i<nNumberOfNodes; i++) {<br /> if (oNodeList.item(i).className == "subform") {<br /> TextField1.rawValue += oNodeList.item(i).name + ";";<br /> getSubNames(oNodeList.item(i).nodes);<br /> }<br /> }<br />}