Javascript dojo.query用于必填字段
我正在使用dojo,我需要查询DOM中所有必需的字段,并在TableContainer中的每个dijit标签旁边添加一个* 我试过了Javascript dojo.query用于必填字段,javascript,dojo,Javascript,Dojo,我正在使用dojo,我需要查询DOM中所有必需的字段,并在TableContainer中的每个dijit标签旁边添加一个* 我试过了 dojo.query("[required]") 但是它会返回一个空的节点列表,显然,在运行时必需的属性会呈现给其他一些属性如果您使用的是dijit/form小部件,您可以尝试搜索“aria required” dojo.query("[aria-required]") 但是,它并不适用于所有小部件(如textarea)。我建议您使用以下方法: dojo.
dojo.query("[required]")
但是它会返回一个空的节点列表,显然,在运行时必需的属性会呈现给其他一些属性如果您使用的是dijit/form小部件,您可以尝试搜索“aria required”
dojo.query("[aria-required]")
但是,它并不适用于所有小部件(如textarea)。我建议您使用以下方法:
dojo.query("[widgetid]").forEach( //scope all widgets on page
function(item){
var widget = dijit.getEnclosingWidget(item);
if(widget.required){
// your code here
}
}
)
当然,更好的行为应该是基于自定义类查询小部件,而不是在页面上查找所有小部件。如果您使用的是dijit/form小部件,您可以尝试搜索“aria required”
dojo.query("[aria-required]")
但是,它并不适用于所有小部件(如textarea)。我建议您使用以下方法:
dojo.query("[widgetid]").forEach( //scope all widgets on page
function(item){
var widget = dijit.getEnclosingWidget(item);
if(widget.required){
// your code here
}
}
)
当然,更好的行为应该是基于自定义类查询窗口小部件,而不是在页面上查找所有窗口小部件。您可以直接使用
dijit/registry
检查具有所需属性的所有窗口小部件,而无需查询DOM
例如:
require(['dijit/registry'], function(registry){
var widgets = registry.toArray();
widgets.forEach(function(widget){
if(widget.required){
// your code here
}
});
});
您可以直接使用
dijit/registry
检查所有具有必需属性的小部件,而无需查询DOM
例如:
require(['dijit/registry'], function(registry){
var widgets = registry.toArray();
widgets.forEach(function(widget){
if(widget.required){
// your code here
}
});
});
创建JSFIDLE…创建JSFIDLE。。。