Extjs在单击按钮时设置readOnly选项

时间:2012-05-31 13:54:35

标签: extjs combobox formfield

美好的一天! 我尝试编写方法,当单击按钮时,在窗体上的元素上设置(true或false)readOnly选项:

Ext.override(Ext.form.Panel,{

  setReadOnly: function(bReadOnly) {

    this.items.each(function(f){

     if (f instanceof Ext.form.FieldSet) {
       f.items.each(function (f) {

       if (f.isFormField) {
          if (bReadOnly === true) {
            f.inputEl.dom.setAttribute('readonly', true);
          } else {
            f.inputEl.dom.removeAttribute('readonly');
          }              

          if (f instanceof Ext.form.TriggerField)
          {                
            f.setDisabled(bReadOnly);                

            if (f instanceof Ext.form.ComboBox)
            {
              f.setEditable(bReadOnly);
            }
          }
        }
    });
    }
  });
});

在文本字段中,此代码非常完美。但是在TriggerField上我无法显示触发器,在false中设置readOnly选项时可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

您可能需要TriggerField setReadonly方法

请参阅此处的API参考:http://docs.sencha.com/ext-js/3-4/#!/api/Ext.form.TriggerField-method-setReadOnly

您不需要手动更改DOM,可以使用ExtJs方法来执行您需要的操作。

此外,您可以使用Panel findByType方法获取面板中的所有表单字段。

http://docs.sencha.com/ext-js/3-4/#!/api/Ext.form.FormPanel-method-findByType