我有3个面板,每个面板将有7-10个字段.
主窗体面板包含一个组合框和3个面板。
基于组合体选择的值,我隐藏剩下的2个面板,并显示一个面板。
这三个面板都对字段进行了allowBlank: false验证。
在提交表单时,隐藏的字段也会被验证,并阻止表单提交。所以我想禁用隐藏的字段。我在用这个密码。
question_multiple_option.query('.component').forEach(function(c){c.setDisabled(true);});但是在EXT 4.X中,当提交表单时,禁用的字段也会被验证。
在Ext2.x和3.X中,禁用字段没有验证,也没有提交。
以前我在ext 2.X中使用了这段代码
Ext.getCmp('option').cascade(function(comp){
if (comp.isFormField) {
//comp.enable();
comp.disable();
}
});它是通过隐藏和显示面板来实现多个面板的表单的正确方法吗?或者如何动态地向窗体添加/移除面板?
有没有更好的方法来实现这种形式。
谢谢。
发布于 2012-02-21 17:50:12
措辞很好的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());
}
});https://stackoverflow.com/questions/9375897
复制相似问题