有没有办法禁用dojo的div容器中的所有输入字段?
就像是:
dijit.byId('main').disable -> Input
Run Code Online (Sandbox Code Playgroud)
Eug*_*kin 11
这就是我这样做的方式:
dojo.query("input, button, textarea, select", container).attr("disabled", true);
Run Code Online (Sandbox Code Playgroud)
此单行禁用给定容器中的所有表单元素.
当然有.例如,打开此表单测试页面,启动FireBug并在控制台中执行:
var container = dojo.query('div')[13];
console.log(container);
dojo.query('input', container).forEach(
function(inputElem){
console.log(inputElem);
inputElem.disabled = 'disabled';
}
)
Run Code Online (Sandbox Code Playgroud)
笔记:
container.如果容器有一些唯一的id,你可以通过只有一个dojo.query简化样本:dojo.query('#containerId input').forEach( ...更新:使用NodeList的attr函数而不是设置属性值的快捷方式forEach.attr首先获取属性名称,然后获取值或具有名称/值对的对象:
var container = dojo.query('div')[13];
dojo.query('input', container).attr('disabled', 'disabled');
Run Code Online (Sandbox Code Playgroud)
小智 6
要记住的是A Dijit和常规DomNode之间的区别.如果你想在DomNode中使用所有Dijit,你可以从节点转换它们 - > Dijit refs查询没有问题:
// find all widget-dom-nodes in a div, convert them to dijit reference:
var widgets = dojo.query("[widgetId]", someDiv).map(dijit.byNode);
// now iterate over that array making each disabled in dijit-land:
dojo.forEach(widgets, function(w){ w.attr("disabled", "disabled"); }
Run Code Online (Sandbox Code Playgroud)
这真的只是取决于如果你的输入是常规的DOM输入标签或已转化成丰富的Dijit模板(这都做在其中常规输入,只是通过小部件参考控制代替)
| 归档时间: |
|
| 查看次数: |
27064 次 |
| 最近记录: |