Extjs 4 динамически добавляет несколько панелей в форму - PullRequest
1 голос
/ 21 февраля 2012

У меня есть 3 панели, и каждая панель будет иметь 7 - 10 полей.

Основная панель формы содержит поле со списком и 3 панели.

Основываясь на выбранном комбо-значении, я скрываю оставшиеся 2 панели и показываю одну панель.

Все эти три панели имеют allowBlank: false проверок для полей.

При отправке формы скрытые поля также проверяются и запрещают отправку формы. Поэтому я хочу отключить поля, которые скрыты. Я использую этот код.

question_multiple_option.query('.component').forEach(function(c){c.setDisabled(true);});

Но в EXT 4.X отключенные поля также проверяются при отправке формы.

В Ext 2.X и 3.X отключенные поля не проверяются и не отправляются.

ранее я использовал этот код в ext 2.X

 Ext.getCmp('option').cascade(function(comp){
                        if (comp.isFormField) {
                            //comp.enable();
                              comp.disable();
                        }
                    });

Это правильный способ реализовать форму с несколькими панелями, скрывая и показывая панели. Или как я могу добавить / удалить панель в форме динамически?.

Есть ли лучший способ реализовать такую ​​форму.

Спасибо.

1 Ответ

1 голос
/ 21 февраля 2012

Красиво сформулировано q.

Не предполагается проверка отключенных полей.

Была ошибка , исправленная в 4.1. Я не уверен, как это выглядит в используемой вами версии 4.x, но вы можете добавить переопределение в своем коде к методу isValid Ext.form.field.Base, чтобы соответствовать коду 4.1, если вы не можете мигрировать. Примерно так:

Ext.override(Ext.form.field.Base, {
    isValid : function() {
        var me = this;
        return me.disabled || Ext.isEmpty(me.getErrors());
    }
});
...