2012-05-31 6 views
0

Добрый день! Я пытаюсь написать метод, который установлен (истина или ложь) ReadOnly опцию элементов на форме, когда кнопка нажата:Extjs set 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); 
      } 
      } 
     } 
    }); 
    } 
    }); 
}); 

На TextField этот код работает идеально. Но на TriggerField я не могу показать триггер, когда установлен параметр readOnly в false.Can Кто-нибудь мне помогает?

ответ

1

Вы, вероятно, хотите метод TriggerField SetReadOnly

см ссылку API здесь: http://docs.sencha.com/ext-js/3-4/#!/api/Ext.form.TriggerField-method-setReadOnly

Вы shoudln't нужно вручную изменить DOM, есть методы ExtJS доступны делать то, что вам требуется.

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

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

+0

Спасибо большое! Я почему-то не смог найти этот метод! – vedmed

Смежные вопросы