0

再会!我正在尝试编写方法,当单击按钮时,该方法在表单上的元素上设置(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 回答