我创建了一个extjs表单,该表单使用列布局分为两部分,并且其中包含近10-15个输入元素。如何根据条件一次禁用所有这些输入元素。目前,我已经创建了一个函数,该函数以某种形式获取所有组件,并使用ext.each循环遍历每个元素以禁用它们
这是我使用的功能
function prepare_form_view(form){
var f=Ext.getCmp(form);
var els=f.query('component');
Ext.each(els,function(o){
var xtype=o.getXType();
if(xtype=='textfield'||xtype=='combobox'||xtype=='datefield'||xtype=='textareafield'||xtype=='button'){
o.disabledCls='myDisabledClass';
o.disable();
}
});
}
有没有其他方法可以使我禁用所有元素,而无需遍历每个元素。我也想将此功能与其他形式一起使用。我在寻找类似“ setFieldDefult”功能的东西。
最佳答案
如果您在ExtJs 4.x中使用FormPanel,那么您正在寻找的是-
yourFormPanel.getForm().applyToFields({disabled:true});
getForm()
方法返回Ext.form.Basic对象,使用此类,您还可以使用getFields()
访问此表单上的所有字段,然后可以迭代所有字段以执行任何操作。希望这会有所帮助,并祝你好运:-)
关于forms - Extjs 4:一次禁用Extjs表单中的所有输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9305888/