Forms 如何在给定的字段集下查找表单小部件?

Forms 如何在给定的字段集下查找表单小部件?,forms,dojo,Forms,Dojo,我有一个dojox/form/Manager表单,具有多个嵌套级别,类似于这个JSFIDLE: 给定一个字段集s的名称,如何在其下方找到所有表单小部件 例如,给定字段b,我如何才能找到小部件b\u 1、b\u 2和b\u 3,而无需硬编码它们的名称或其他此类诡计?使用getsubstands()可以从特定小部件中获取所有子部件(在所有级别)。然后,您可以使用myWidget.declaredClass验证小部件的类,以检查小部件是否为dijit.form.* 例如: require([“diji

我有一个
dojox/form/Manager
表单,具有多个嵌套级别,类似于这个JSFIDLE:

给定一个
字段集
s的名称,如何在其下方找到所有表单小部件

例如,给定
字段b
,我如何才能找到小部件
b\u 1
b\u 2
b\u 3
,而无需硬编码它们的名称或其他此类诡计?

使用
getsubstands()
可以从特定小部件中获取所有子部件(在所有级别)。然后,您可以使用
myWidget.declaredClass
验证小部件的类,以检查小部件是否为
dijit.form.*

例如:

require([“dijit/registry”、“dojo/ready”、“dojo/parser”、“dojox/form/Manager”、“dijit/Fieldset”、“dijit/form/TextBox”]),函数(registry,ready){
就绪(函数(){
registry.byId(“fieldset_a”).getDescents().forEach(函数(小部件){
if(widget.declaredClass.match(/^dijit\.form\./i)){
console.log(小部件);//表单小部件
}
});
});
});

我还用叉子叉了你的。但是我删除了dojo/domReady并切换到使用
data dojo config=“parseOnLoad:true”
的自动解析,以及
dojo/ready
模块,因为只有在DOM准备就绪并且解析dojo小部件(dijit)时才会执行回调。

太好了,谢谢!我曾考虑使用dojo/query,但这并不是专门寻找小部件,因此可能会变得很棘手。
dojo/query
是针对DOM节点的。Dojo拆分小部件和DOM节点,要检索小部件,应该使用
dijit/registry