EXTJS:有效性 - 从有效性检查中排除隐藏的输入字段



我的表单具有两个输入字段'test1'和'test2'和一个组合框。我想验证此表格,输入字段不应是emtpy。因此,我使用config" allowblank:false"和控制器方法" onformvalityChanged"。这很好。

现在,当我使用控制器方法中的组合框中更改" test2"的输入字段'test2',动态地'Onchangecombo'。另外,我设置了config'允许布莱克:true的输入字段'test2'。但是当隐藏的输入字段" test2"为空时,我的表格无效。

如何从有效检查中排除隐藏的输入字段?

我使用Extjs版本6.6。

谢谢您的提示,托马斯

查看:

    items : [{
        xtype : ' formpanel',
        trackResetOnLoad : true,            
        layout : {
            type : 'vbox',
            align : 'stretch'
        },
        items : [
        {
            xtype : ' textfield',
            name : 'test1'
            itemId : 'test1',
            allowBlank : false,
            fieldLabel : 'test1'
        },
        {
            xtype : ' combobox',
            name : 'combo',
            itemId : 'combo',
            store: myStore,
            listeners : {
                change : 'onChangeCombo'
            }
        },            
        {
            xtype : ' textfield',
            name : 'test2'
            itemId : 'test2',
            allowBlank : false,
            fieldLabel : 'test2'
        }],
        listeners : {
            validitychange : 'onFormValidityChanged'
        }
    }];

控制器:

onFormValidityChanged : function(form, valid) {
    var win, button;
    win = form.owner.up('window');
    button = win.down('[xtype=button]');
    button.setDisabled(!valid);
}, 
onChangeCombo : function(combobox) {
    var win, test2;
    win = combobox.up('window');
    test2 = win.down('textfield[itemId=test2]');
    test2.hide();
    test2.allowBlank = true;
}

要关闭验证,只需禁用此隐藏的输入。

test2.disable();

我也有建议:

  • 使用test2.setallowblank(true)代替test2.allowblank = true

  • 不要使用诸如win.down(等)之类的参考,请查看带有参考和查找方法的ViewController选项

诺贝克的提案

test2.disable()

不提供解决方案。我不知道为什么...

我没有遵循DH117的形式建议。我解决了此问题如下:

test2 = win('textfield[itemId=test2]');
win.remove(test2);

感谢您的提示,也提示了进一步的提示,托马斯

相关内容

  • 没有找到相关文章

最新更新