0

良い一日!ボタンがクリックされたときに、フォーム上の要素に readOnly オプションを設定する (true または false) メソッドを作成しようとしています。

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 に設定すると、トリガーを表示できません。

4

1 に答える 1

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

于 2012-05-31T15:04:40.120 に答える