Extjs устанавливает опцию readOnly при нажатии кнопки

Добрый день! Я пытаюсь написать метод, который устанавливает (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 я не могу показать триггер, когда для параметра readOnly установлено значение false. Кто-нибудь может мне помочь?


person vedmed    schedule 31.05.2012    source источник


Ответы (1)


Вы, вероятно, хотите, чтобы метод TriggerField setReadonly

Справочник по API см. здесь: http://docs.sencha.com/ext-js/3-4/#!/api/Ext.form.TriggerField-method-setReadOnly

Вам не нужно вручную изменять DOM, есть методы ExtJ, доступные для выполнения того, что вам нужно.

Кроме того, вы можете использовать метод панели findByType, чтобы получить все поля формы внутри вашей панели.

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

person Dve    schedule 31.05.2012
comment
Большое спасибо! Я почему-то не смог найти этот метод! - person vedmed; 01.06.2012